Подтвердить что ты не робот

Как суммировать сумму в MongoDB, чтобы получить общий счет?

Для некоторой коллекции с полем { wins: Number }, как я могу использовать агрегатную структуру MongoDB для получения общего количества выигрышей по всем документам в коллекции?

Пример:

Если у меня есть 3 документа с wins: 5, wins: 8, wins: 12 соответственно, как я могу использовать Framework Aggregation Framework MongoDB, чтобы вернуть общее число, т.е. total: 25.

4b9b3361

Ответ 1

Сумма

Чтобы получить сумму сгруппированного поля при использовании Структуры агрегации MongoDB, вам нужно использовать $group и $sum:

db.characters.aggregate([ { 
    $group: { 
        _id: null, 
        total: { 
            $sum: "$wins" 
        } 
    } 
} ] )

В этом случае, если вы хотите получить сумму всего wins, вам нужно обратиться к имени поля, используя синтаксис $ как $wins, который просто извлекает значения wins поля из сгруппированных документов и суммирует их вместе.

Count

Вы можете sum другие значения, передав определенное значение (как вы сделали в своем комментарии). Если у вас

{ "$sum" : 1 },

который на самом деле был бы счетом всего wins, а не всего.