我有一个有4个道具的单子。我希望结果是:
ProjectName
PartnerName
Date
Time1
Time2
Time3例如。
PROJECT-AA
PART-AA
2021-01-01
21:00:00
22:00:00
2021-01-02
21:00:00
PART-BB
2021-01-01
21:00:00我可以分组第一层,并添加道具到一个新的道具与$push,但在那之后,我不能分组的下一个级别。
我怎样才能让搭档把时间连在一起呢?
谢谢。
发布于 2021-10-20 23:53:51
对于您的情况,只需使用2 $group即可。
$group由"ProjectName, PartnerName, Date,$push Time在里面。$group由"ProjectName, PartnerName,$push Date, Time在里面。$group由ProjectName,$push PartnerName, DateTime在里面。然后,您可以继续将数据转换为预期的表单。db.collection.aggregate([
{
"$group": {
"_id": {
"ProjectName": "$ProjectName",
"PartnerName": "$PartnerName",
"Date": "$Date"
},
Time: {
$push: "$Time"
}
}
},
{
"$group": {
"_id": {
"ProjectName": "$_id.ProjectName",
"PartnerName": "$_id.PartnerName"
},
DateTime: {
$push: {
Date: "$_id.Date",
Time: "$Time"
}
}
}
},
{
"$group": {
"_id": "$_id.ProjectName",
partner: {
$push: {
PartnerName: "$_id.PartnerName",
DateTime: "$DateTime"
}
}
}
}
])这是供您参考的蒙戈游乐场。
https://stackoverflow.com/questions/69653275
复制相似问题