Mongoose 找到很多并更新所有

Mic*_*abe 6 javascript mongoose mongodb node.js

我正在使用 Mongoose,并且需要根据一些计算更新许多文档。

如果我是一项一项查询,这很容易,但是如果我有 50 项,我不想一项一项查询和更新

我正在做的是策划一个查询来拉回多个文档,以便我可以循环遍历所有文档并进行更改。

但是,您无法像使用 findOne 那样对多个对象调用 save。这是我第一次使用 Mongoose,但在实体框架中,我可以编辑查询返回的结果并调用 saveChanges() 来更新每个已更改的项目

我想做这样的事情

item.find(query).exec(function(err, items) {
  for (i in items) {
     // change stuff
  }
  items.save(function (err) {
    // saved
  }
}
Run Code Online (Sandbox Code Playgroud)

YLS*_*YLS 1

If you're trying to do some simple changes to these docs, maybe

update({_id:{$in:[a,b,c]}}, {$inc:{score:1}}, {multi:true}).exec() could help.