嗨,我是 Mongodb 的新手,我正在嘗試獲取以下 MongoDB 資料的總價和促銷document.collection.find以及$add功能:
資料:
[
{"catalog":"A",
"book":[
{
"title":"Mermaid yang terdampar",
"price":90000,
"promo":15000
},
{
"title":"Srigala berbulu domba",
"price":30000,
"promo":15000
}
}]
我的預期結果會是這樣的:
[
{
"catalog": "A",
"totalPrice": 140000,
"totalPromo": 32000
},
]
有沒有人遇到過類似的問題?我對查詢感到困惑:)
uj5u.com熱心網友回復:
對于.find()查詢,您可以直接使用$sum運算子。
db.collection.find({},
{
catalog: 1,
totalSum: {
$sum: "$book.price"
},
totalPromo: {
$sum: "$book.promo"
}
})
示例 Mongo Playground
uj5u.com熱心網友回復:
使用聚合
db.getCollection('myCollection').aggregate([
{ "$group": {
"_id": "$tempId",
"totalPrice": {
"$sum": { "$sum": "$book.price" }
},
"totalPromo": {
"$sum": { "$sum": "$book.promo" }
}
} }
])
uj5u.com熱心網友回復:
使用$group(聚合)
db.getCollection('catlog').aggregate([{
$group: {
_id: "$_id",
catalog: { $first: "$catalog" },
totalPrice: { "$sum": { $sum: "$book.price" } },
totalPromo: { "$sum": { $sum: "$book.promo" } }
}
}])
輸出將是:
{
"_id" : ObjectId("6247b33cffc5b6f714769fbb"),
"catalog" : "A",
"totalPrice" : 120000,
"totalPromo" : 30000
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455197.html
標籤:mongodb
