亲爱的,
我们已经开始在我们的内部项目中使用mongodb。我正面临一些问题,需要你的帮助。
这是我的表... books_issued
USER_ID book_id
1个
1个3
2个5
2个8
我想使用$ group列出它,结果应该是这样的......
USER_ID book_id
1 1,3
2 5,8
我们正在使用$ match和$ group。请使用java api帮助解决相同问题。
谢谢,
运算
答案 0 :(得分:4)
此查询使用user_id作为聚合的_id字段,并将book_id添加到books数组中:
db.books_issued.aggregate( {$group: { _id: "$user_id", books: {$push: "$book_id"} } } )
java代码可能如下所示:
DBObject groupObj = new BasicDBObject().append("$group",
new BasicDBObject().append("_id", "$user_id")
.append("books", new BasicDBObject("$push", "$book_id")));
List<DBObject> pipeline = new ArrayList<DBObject>();
pipeline.add(groupObj);
AggregationOutput r = books.aggregate(pipeline);