Получить сумму первого элемента поля массива из всех документов в MongoDB - PullRequest
1 голос
/ 14 апреля 2020

В моей коллекции MongoDB у меня много документов, таких как

 { "_id" : 12, "amount" : [ {a:20}, {b:30}, {c:40}] }
 { "_id" : 13, "amount" : [ {a:100}, {b:310}, {c:240}] }
 { "_id" : 14, "amount" : [ {a:50}, {b:30}, {c:30}]  }

, и я хочу получить сумму $amount.a всех документов (здесь должно быть 170). Я не могу понять запрос, чтобы сделать то же самое. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 14 апреля 2020

Вы можете использовать ниже агрегации

db.collection.aggregate([
  { "$group": {
    "_id": null,
    "totalAmount": {
      "$sum": {
        "$sum": "$amount.a"
      }
    }
  }}
])

MongoPlayground

...