操場
我有一個包含 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
我可以將第 1 級分組并使用 $push 將道具添加到新道具中,但之后我無法對下一級進行分組。
我怎樣才能通過合作伙伴連接時間?
謝謝。
uj5u.com熱心網友回復:
對于您的情況,您只需要處理 2 $group。
$group通過"ProjectName, PartnerName, Date,$pushTime里面。$group通過"ProjectName, PartnerName,$pushDate, Time里面。$group通過ProjectName,$pushPartnerName, 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"
}
}
}
}
])
這是Mongo Playground供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329202.html
上一篇:向現有資料添加額外級別的嵌套?
