UpdateMany в mongoose не работает, но напрямую в mongodb работает нормально - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь сделать обновление / вставку в mongoose . Я делаю запрос, и результат (пример)

let obj = [
    {name: aaa,age: 10},
    {name: bbb,age: 11},
    {name: ccc,age: 12},
]

Я пытаюсь обновить все документы, но если они не существуют, создайте их.

Я пытался сделать:

updateMany({}, {$set: {nome:"obj.$.name", idade: "obj.$.age"}}, {upsert:true})

Но ничего не происходит, я пытаюсь сделать еще один тест в мангусте, более простой, например:

<model-context>.updateMany({},{$set: {name: 'abc'}},{upsert: true})

Не работает, поэтому я делаю то же самое обновление прямо в mongodb

db.context.updateMany({},{$set: {name: 'abc'}},{upsert: true})

И сработало, мне нужно сделать что-то еще в мангусте, чтобы работать?

ПРИМЕЧАНИЕ : я могу использовать createMany в mongoose, работает нормально.

1 Ответ

0 голосов
/ 23 января 2019

Я решил проблему, мне нужно передать функцию в аргументе updateMany

for(let n of obj){
   <context>.update({name: n.name}, {$set: {'age':n.age}}, {upsert: true},  
(err, doc)=>{
    if(err) console.log(err);
    console.log(doc)
 })
}
...