私信  •  关注

user3176403

user3176403 最近创建的主题
user3176403 最近回复了
7 年前
回复了 user3176403 创建的主题 » Mongodb更新子文档字段的方法比逐个更新更好[重复]

实际上,save命令只在Document类的实例上执行。 有很多方法和属性。所以你可以用 精益() 减少工作负荷的功能。 请参阅此处。 https://hashnode.com/post/why-are-mongoose-mongodb-odm-lean-queries-faster-than-normal-queries-cillvawhq0062kj53asxoyn7j

save函数的另一个问题是,它会使冲突数据同时进行多次保存。 模型.更新 将使数据一致。 以便更新文档数组中的多个项。使用您熟悉的编程语言并尝试类似的方法,我在其中使用mongoose:

User.findOne({'_id': '4d2d8deff4e6c1d71fc29a07'}).lean().exec()
  .then(usr =>{
    if(!usr)  return
    usr.events.forEach( e => {
      if(e && e.profile==10 ) e.handled = 0
    })
    User.findOneAndUpdate(
      {'_id': '4d2d8deff4e6c1d71fc29a07'},
      {$set: {events: usr.events}},
      {new: true}
    ).lean().exec().then(updatedUsr => console.log(updatedUsr))
})