2016-11-27 74 views
3

我试过在网上搜索这个错误,但没有任何帮助。我正尝试在使用Java的mongodb中使用aggregate函数。 RetailerZip是我想将我的结果分组的字段。安装

groupFields = new BasicDBObject("_id", 0); 
groupFields.put("count",new BasicDBObject("$sum",1)); 
groupFields.put("_id", "$RetailerZip"); 
group = new BasicDBObject("$group", groupFields); 
sort = new BasicDBObject(); 
projectFields = new BasicDBObject("_id", 0); 

projectFields.put("value", "$_id"); 
projectFields.put("ReviewValue","$count"); 
project = new BasicDBObject("$project", projectFields); 
sort.put("ReviewValue",-1); 
orderby=new BasicDBObject("$sort",sort); 
limit=new BasicDBObject("$limit",5); 

List<DBObject> pipeline = Arrays.asList(group, project, orderby, limit); //error occurs on this line. 
AggregationOutput output = mongo.myReviews.aggregate(pipeline); 

MongoDB的版本是:3.2.11

+1

您可以加入你所得到的错误的详细信息?还有什么'组','项目'等是对象? – nullpointer

+0

什么是'RetailerZip'没有在问题中提到。问题肯定需要改进。 – nullpointer

回答

1

你把 “_id” 两次在$小组赛阶段。 试图取代这一

groupFields = new BasicDBObject("_id", 0); 
groupFields.put("count",new BasicDBObject("$sum",1)); 
groupFields.put("_id", "$RetailerZip"); 

通过

groupFields = new BasicDBObject("_id", "$RetailerZip"); 
groupFields.put("count",new BasicDBObject("$sum",1)); 
+0

谢谢!有效。 – trin

相关问题