我有一系列具有以下结构的文件:
{
"_id" : ObjectId("..."),
"group_id" : 1,
"value" : 4,
"date": "1970-01-01"
}
我希望按group_id
对文档进行分组,然后对该组中包含的文档进行排序。现在,我只能构建一个未排序的数组:
db.collection.aggregate({$group: {_id: "$group_id", count: {$sum: 1}, docs: {$push: "$$CURRENT"}}})
如何在我的阵列中订购我的文档,例如value
?
答案 0 :(得分:0)
您需要首先按“组”对文档进行排序,然后使用$sort
按组管道运算符按升序排序“值”。
db.collection.aggregate([
{ "$sort": { "group_id": 1, "value": 1 } },
{ "$group": {
"_id": "$group_id",
"count": { "$sum": 1 },
"docs": { "$push": "$$CURRENT" }
}}
])