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

MongoDB集合,使用终端命令对所有键值求和,mongodb,mongodb-query,command,Mongodb,Mongodb Query,Command,这是我桌子上的一个项目: { "_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"), "conciergeri

这是我桌子上的一个项目:

{
"_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",
],
}
我需要将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" }
        }
    }
])