gpt4 book ai didi

node.js - Mongoose 中的 UpdateMany 不工作但直接在 mongodb 中工作正常

转载 作者:行者123 更新时间:2023-12-04 17:41:29 26 4
gpt4 key购买 nike

我正在尝试在 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})

但是,没有任何反应,我尝试在 mongoose 中进行另一个测试,更简单,如下所示:

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

没有用,所以我直接在 mongodb 中进行相同的更新

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

并且工作了,我需要在 mongoose 中做更多的事情才能工作吗?

注意:我可以在 mongoose 中使用 createMany,效果很好。

最佳答案

我解决了这个问题,我需要在 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)
})
}

关于node.js - Mongoose 中的 UpdateMany 不工作但直接在 mongodb 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com