1

嗨,我有嵌入的文档,但我无法通过 id 查询它们。我可以用检查输出所有内容,并且有正确的 ID,但无法查询它们。我有一个 embeds_many :course_members 的课程模型和一个带有 embedded_in :course, :inverse_of => :course_members 的 CourseMember 模型

我试过这个没有任何成功:

puts Course.where("course_members.id" => params[:id])

使用此代码,我可以访问正确的文档:

c = Course.where("course_members.accepted" => 2).all
c.each do |l|
 l.course_members.each do |f|
  puts f.inspect
 end
end

但是如何通过一个 Mongoid 查询获取我的数据?

4

1 回答 1

6

我猜

puts Course.where("course_members._id" => BSON::ObjectId(params[:id]))

MongoDB 中真正的 id 参数是_id, mongoid 中的函数.id只是一个方便的包装器。

编辑:您还必须将字符串转换params[:id]为正确的 BSON ID。

于 2012-04-14T10:14:23.250 回答