我想為裝運計算不同的胡。所以我寫了這個查詢,但是我如何按裝運計算不同的 hu 組?
我的查詢:
db.eventstranslated.aggregate([
{ "$group": {
"_id": "$IdShipment",
"count": { "$sum": 1 }
}},
{ "$group": {
"_id": null,
"ship": {
"$push": {
"shipment": "$_id",
"count": "$count"
}
}
}},
{ "$project": { "_id": 0 }}
])
結果 :
{ shipment: A01, count: 1 },
{ shipment: A02, count: 1 },
期望輸出:
{shipment: A01, count: 2 }
{shipment: A02, count: 1 }
我的收藏:
{
_id: 1,
IdShipment: "A01",
hu: "C111"
},
{
_id: 2,
IdShipment: "A01",
hu: "C112"
},
{
_id: 3,
IdShipment: "A02",
hu: "D111"
},
{
_id: 4,
IdShipment: "A02",
hu: "D111"
}
uj5u.com熱心網友回復:
您可以像這樣使用兩個$group階段:
首先$group有一個復合鍵來獲取所有不同的選項,第二個$group是只獲取不同的選項IdShipment。
db.collection.aggregate([
{
"$group": {
"_id": {
"IdShipment": "$IdShipment",
"hu": "$hu"
}
}
},
{
"$group": {
"_id": "$_id.IdShipment",
"count": {
"$sum": 1
}
}
}
])
這里的例子
您也可以使用$project輸出您想要的名稱。這里的例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474002.html
下一篇:如何進行查詢包括收集的計數和資料
