新手问题 Mongoid 的一个数组的 item 如果有更新,如何一次性 update?

itsvoid · November 21, 2012 · Last by yandy0725 replied at November 23, 2012 · 2777 hits

比如说一个 projects 里面放置有 query 出来的 project,我对每个 project 的一个属性,比如 status 更改为'draft',那么如何只对 mongodb 进行一次 update 操作?

我现在的做法是:

projects.each do |p|
  p.status = 'draft'
  p.update
end

这样应该是,每一次内存更新都会触发数据库更新,我想能不能有一个 projects.update_all(update_all 对一个数组对象)

Criteria#update_all

#3 楼 @fresh_fish 你是 criteria 的方法,我的问题是有没有针对已经查出来的结果(数组)的?

#4 楼 @itsvoid

p_ids = projects.map {|p| p.id}
Project.where(_id: p_ids).update_all(status: 'draft')
You need to Sign in before reply, if you don't have an account, please Sign up first.