I am trying to apply aggregation with lookup in MongoDB with Mongo Scala Driver and while I try to fetch result, I get the Boxed Error.
val query: AggregateObservable[Document] = collection.aggregate(Seq(
lookup("training", "trainingId", "_id", "trainingsOutput"),
lookup("certification", "trainingsOutput.certificationId", "name", "certificationOutput"),
filter(Document("startDate" -> Document("$lte" -> new Date()),
"endDate" -> Document("$gte" -> new Date()))),
project(Document(trainingDataMap))))
val res: Future[Seq[JsValue]] = query.toFuture().map(x => x.map(x => Json.parse(x.toJson()).as[JsValue]))
Errors I get,
20/05/19 03:41:28 ERROR yarn.ApplicationMaster: User class threw exception: java.util.concurrent.ExecutionException: Boxed Error
Caused by: java.lang.NoSuchMethodError: com.mongodb.internal.operation.AsyncOperations.aggregate(Ljava/util/List;Ljava/lang/Class;JJLjava/lang/Integer;Lcom/mongodb/client/model/Collation;Lorg/bson/conversions/Bson;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lcom/mongodb/client/model/AggregationLevel;)Lcom/mongodb/operation/AsyncReadOperation;
at com.mongodb.async.client.AggregateIterableImpl.asAsyncReadOperation(AggregateIterableImpl.java:172)
at com.mongodb.async.client.MongoIterableImpl.batchCursor(MongoIterableImpl.java:161)
at com.mongodb.async.client.MongoIterableSubscription.requestInitialData(MongoIterableSubscription.java:46)
at com.mongodb.async.client.AbstractSubscription.tryRequestInitialData(AbstractSubscription.java:151)
... 38 more
I am using following dependency for driver,
compile group: 'org.mongodb.scala', name: 'mongo-scala-driver_2.11', version: '2.6.0'
Issue that I noticed, whenever I try to get result with toFuture, so that Observable[T] is converted to Seq[JsValue], I get the errors.