Как динамически установить поле в Mon goose при агрегировании? - PullRequest
1 голос
/ 01 мая 2020
someModel.aggregate([{
                        $group: {_id:null,
                         average:{$avg:"$low"}}
                    }
                    ])

в вышеприведенном коде "low" - это поле, в котором я хочу выполнить усреднение. Но у меня тоже есть еще несколько полей. когда я получаю значение поля, я не могу его динамически установить. мне нужно использовать if / else как ниже для достижения этого.

if(field==="low"){
      someModel.aggregate([{
                            $group: {_id:null,
                             average:{$avg:"$low"}}}])
}else if(field==="high"){
     someModel.aggregate([{
                            $group: {_id:null,
                             average:{$avg:"$high"}}}])
}

это единственный способ сделать это?

1 Ответ

2 голосов
/ 01 мая 2020

Попробуйте объединить это, используя field переменную:

let field = 'low';
let group = {  $group: {_id:null,
                             average:{$avg:"$" + field}}};

console.log(group);
someModel.aggregate([group]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...