gpt4 book ai didi

node.js - Mongo : Group, 推送并排序

转载 作者:行者123 更新时间:2023-12-02 20:58:44 26 4
gpt4 key购买 nike

我有一个 mongodb 集合数据,如下所示;我想按 EmployeedID(即 0001)分组,然后排序(按年龄)

{
"_id" : ObjectId("54d0512191a4da7736e9db43"),
"EmployeeID" : "0001",
"Speciality" : "xxx",
"Code" : "P",
"Age" : 8
}

/* 1 */
{
"_id" : ObjectId("54d0512191a4da7736e9db44"),
"EmployeeID" : "0002",
"Speciality" : "yyyyy",
"Code" : "P",
"Age" : 6
}

/* 2 */
{
"_id" : ObjectId("54d0512191a4da7736e9db45"),
"EmployeeID" : "0001",
"Speciality" : "zzz",
"Code" : "P",
"Age" : 5
}

我知道我可以使用以下方式进行分组。

collection.aggregate([
{$match:{"EmployeeId":0001}},
{$group:{"_id":"$EmployeeID",
"speciality":{$push:"$Speciality"},
"Code":{$push:"$Code"},
"Age":{$push:"$Age"}}}
])

但是我如何在这里使用 $sort 呢?所以我的结果可能如下所示;

[{ "EmployeeID" : "0001",
"speciality" : [ "zzz","xxx"],
"Code" :[ "P","P"],
"Age" : [5,8]
}]

最佳答案

您可以在分组阶段之前对文档进行排序:

collection.aggregate([
{$sort: {_id: -1}},
{$match:{"EmployeeId":0001}},
{$group:{"_id":"$EmployeeID",
"speciality":{$push:"$Speciality"},
"Code":{$push:"$Code"},
"Age":{$push:"$Age"}}}
])

关于node.js - Mongo : Group, 推送并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28301746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com