我收藏了这样的文件:
{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100", "code" : "ZZZ" },
{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599200", "code" : "ZZZ" }
如何使分组得到如下输出:
{
"ZZZ": {
"items": {
0: { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100"},
1: { "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599100"}
}
}
}
答案 0 :(得分:1)
这应该会让你与你想要的相似:
db.collection.aggregate([{ $group : { _id : "$code", items: { $push: "$$ROOT" } } }])
它将返回:
{
"_id" : "ZZZ",
"items" :
[
{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test title", "category" : "test category", "pubDate" : "1457599100", "code" : "ZZZ" },
{ "_id" : ObjectId("56e17f2db292c9151a8b459b"), "title" : "test 2 title", "category" : "test 2 category", "pubDate" : "1457599200", "code" : "ZZZ" }
]
}
可以找到文档under $group aggregation。