MongoDB 集合,使用终端命令对所有键值求和



这是我表中的一个项目:

{
"_id" : ObjectId("5c20erefebddfbc9fdsff"),
"name" : "robe simple",
"price" : 4.9,
"unit" : "piece",
"price_type" : "flexible",
"updated_at" : ISODate("2019-12-30T09:06:35Z"),
"created_at" : ISODate("2018-12-24T14:23:25Z"),
"conciergerie_ids" : [
"5c20ebefedcfbc9a103erfefeef921a9e2",
"5c20ebdefsfcfbc9a1efsefe03b921a9e3",
"5c20ebdsefefcfbc9a1sefef03b921a9e4",
],
}

我需要将特定古监狱的所有价格相加,created_at 2019年。

我试过这个:

> db.prestations.find({'conciergerie_ids': '5c20ebseffhhb3b921adfdf9ef'}).count({ $sum: 'price' })

但我只得到与我的古监狱相对应的所有物品的总和。

我也试过这个:

> db.prestations.find({'conciergerie_ids': '5c20ebdcfbefefc9a103b921afefef9ef'}).aggregate([ { $group: total: {{ $sum: "$price" }} } ])

我如何获得特定古监狱的所有价格的总和,并且仅在2019年创建?谢谢!

您可以使用以下聚合:

db.collection.aggregate([
{
$match: {
$and: [
{ 'conciergerie_ids': '5c20ebdcfbc9a103b921a9ef'},
{ created_at: { $gte: ISODate("2019-01-01T00:00:00Z") } }
]           
}
},
{
$group: {
_id: null,
total: { $sum: "$price" }
}
}
])

蒙戈游乐场

最新更新