Суммирование значений в мангусте

#node.js #mongodb #mongoose #mongoose-schema

Вопрос:

У меня есть схема мангуста, которая отслеживает 5 типов несчастных случаев каждый год . Теперь мне также нужен столбец «Общее количество несчастных случаев», который должен просто суммировать значения этих 5 столбцов и обновляться каждый раз, когда обновляется любой из 5 столбцов . Может кто-нибудь, пожалуйста, сказать мне, как это сделать ?

Комментарии:

1. Можете ли вы добавить пример своей коллекции?

2. На самом деле набор данных, над которым я работаю, довольно большой . Это для веб-сайта, который отслеживает количество несчастных случаев в той или иной области и группирует данные примерно в 21 различных листах Excel . Моя работа состоит в том, чтобы создать веб-сайт, чтобы можно было избежать листов excel . Коллекция выглядит примерно так : { год : 2020(скажем) , лист1 : { Смертельные случаи : 12, Незначительные несчастные случаи : 23, Смертельные случаи : 10 и т. Д. } Здесь еще 20 листов } И для каждого листа у меня есть общее поле несчастных случаев . Есть ли функция , с помощью которой я могу отслеживать общую сумму, возможно, что-то вроде $sum ?

3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Ну, единственный способ сделать это-вручную обновлять его каждый раз, когда вы что-то делаете с этими 5 полями (у нас нет столбцов в MongoDB). 🙂

Если вы используете такие инструменты, как MongoDB, вы можете добавить какой pre -нибудь крючок для сохранения, который сделает эту магию.

Комментарии:

1. Разве нет функции, которая может суммировать значения 5 полей (новичок ;-;) .

2. Для этого вам нужно использовать агрегацию.

3. const yearSchema = new mongoose.Schema({ year: Number, sheet1: { f_jan_acc: Number, gi_jan_acc: Number, mi_jan_acc: Number, ni_jan_acc: Number, tot_jan_acc: Number,} }) Вот что такое краткое описание схемы . Не могли бы вы рассказать мне, пожалуйста, как применить агрегатную функцию, чтобы получить итоговую сумму всех остальных записей ??

4. docs.mongodb.com/manual/aggregation

5. Большое спасибо 🙂