2

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.

0 Answers0