这是我表中的一个项目:
{
"_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" }
}
}
])
蒙戈游乐场