代码之家  ›  专栏  ›  技术社区  ›  Ankit

我无法使用Groovy在mongoDB上执行聚合操作

  •  0
  • Ankit  · 技术社区  · 7 年前

    我正在使用 在mongoDB上执行聚合操作。管道操作匹配、查找和项目看起来工作正常。但总的来说,我得到了错误。我尝试了很多关于这个错误的解决方案,但是没有一个不适合我。有人能帮我吗?

    c_1.insert(new BasicDBObject(["id" : 10, "name" : "abc", "lastName" : "kumar",  "companyId": 10]))    
    c_2.insert(new BasicDBObject(["id" : 10, "companyName" : "Microsoft", "numEmployee" : 100 ]))  
    
    // Build the $match operations
    DBObject match = new BasicDBObject("\$match", new BasicDBObject("id", 10));  
    
    // Build the $lookup operations 
    DBObject lookupFields = new BasicDBObject("from", "c_2");
    lookupFields.put("localField", "companyId");
    lookupFields.put("foreignField", "id");
    lookupFields.put("as", "companydoc"); 
    DBObject lookup = new BasicDBObject("\$lookup", lookupFields);  
    
    // Build the $project operations 
    DBObject projectFields = new BasicDBObject("name", 1);
    projectFields.put("lastName", 1);
    projectFields.put("companyId", 1);
    projectFields.put("companyName", "\$c_2.companyName");       
    DBObject project = new BasicDBObject("\$project", projectFields); 
    List<DBObject> pipeline = Arrays.asList(match, lookup, project);  
    AggregationOutput output = c_1.aggregate(pipeline.get(0), pipeline.get(1), pipeline.get(2))  
    

    错误: 响应消息:javax.script.ScriptException:com.mongodb.CommandFailureException:{“serverUsed”:“/xx.xx.xx:27017”,“ok”:0.0,“errmsg”:“需要使用'cursor'选项,带有解释参数的聚合除外”,“code”:9,“codeName”:“FailedToParse”}

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ankit    7 年前

    问题解决了。

    使用了最新版本的mongo java驱动程序。

    推荐文章