首页 > 解决方案 > 我无法使用 Groovy 在 mongoDB 上执行聚合操作

问题描述

我正在使用groovy 语言对 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.xx:27017”,“ok”:0.0,“errmsg”:“'光标'选项是必需的,除了带有解释参数的聚合"、"code":9、"codeName":"FailedToParse"}

标签: mongodbgroovyaggregation-frameworkaggregate-functions

解决方案


问题已解决。

使用了最新版本的 mongo-java-driver。


推荐阅读