Внутреннее соединение Mongodb в Java-пружине с использованием AggregationOperation: Error [Требуется опция 'cursor', за исключением агрегирования с аргументом объяснения] - PullRequest
0 голосов
/ 07 декабря 2018

Я исключаю следующий запрос mongodb. Я новичок в dong mongo. Скажите, пожалуйста, что я делаю неправильно

   db.entityCounter.aggregate([
   {
     $lookup:
       {
         from: "fields",
         localField: "code",
         foreignField: "fieldCode",
         as: "fieldsresult"
       }
  },{
      $match:{
          $and: [{
              "fieldsresult.isVisible":"1"
              },{"type":"field"
                  }]
          }
          }])

ниже приведен код Java-кода

  LookupOperation lookupOperation = LookupOperation.newLookup()
            .from("fields")
            .localField("code")
            .foreignField("fieldCode")
            .as("fieldsresult");

    AggregationOperation match1 = Aggregation.match(Criteria.where("fieldsresult.isVisible").is("1"));

   // AggregationOptions aggregationOptions = Aggregation.newAggregationOptions();
    DBObject ob=new BasicDBObject();
    ((BasicDBObject) ob).put("batchSize",10);
    Aggregation aggregation = Aggregation.newAggregation(lookupOperation,match1).withOptions(Aggregation.newAggregationOptions().cursor(ob).build());



long val=0;
try {
    AggregationResults<EntityCounter> result = mongoOperations.aggregate(aggregation, Fields.class, EntityCounter.class);
    // val= result.getMappedResults();
}catch (Exception e){
    e.printStackTrace();

}

, но яошибка ниже:

org.springframework.dao.InvalidDataAccessApiUsageException: сбой выполнения команды: ошибка [Требуется опция 'cursor', за исключением агрегата с аргументом объяснения], Command = {"aggregate":"entityCounter", "pipe": [{"$ match": {"fieldsresult.isVisible": "1"}}, {"$ lookup": {"from": "fields", "localField": "code", "foreignField": "fieldCode", "as": "fieldsresult"}}]};вложенное исключение - com.mongodb.MongoCommandException: команда завершилась с ошибкой 9: требуется опция «курсор», за исключением агрегирования с аргументом объяснения на локальном сервере: 27017.Полный ответ: {"ok": 0.0, "errmsg": требуется опция "курсор", за исключением агрегирования с аргументом объяснения "," code ": 9," codeName ":" FailedToParse "}

1 Ответ

0 голосов
/ 09 декабря 2018

Поиск был представлен в mongodb 3.4, пожалуйста, обновите ваш дБ

...