Mongodb替换mysql中的GROUP_CONCAT

时间:2014-06-25 13:43:49

标签: mongodb-java

亲爱的,                 

我们已经开始在我们的内部项目中使用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帮助解决相同问题。

谢谢,
运算

1 个答案:

答案 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);