我有两个Mongoid文件:
class Book include Mongoid::Document embeds_many :pages end class Page include Mongoid::Document embedded_in :book field :reviewer, type: String field :done, type: Boolean end
我创建了两个Book
文档,其中嵌入了四个Page
文档:
reviewers = %w(Alice Bob Charlie)
2.times do
book = Book.new
4.times do
reviewer = reviewers.sample
book.pages << Page.new(reviewer: reviewer, done: false)
end
book.save
end
请注意,评论者是从reviewers
随机选择的。
我想为{Alice'一次审核的所有done
文件设置true
字段为Page
。我该怎么办?
我写了以下代码:
Book.where('pages.reviewer' => 'Alice').set('pages.$.done' => true)
即使“Alice”审核了多个网页,此更新也会为每个Page
文档更新一个Book
文档。
我使用的是mongoid 4.0.0.alpha1。