Mongoid嵌入式查询

时间:2012-04-14 10:08:36

标签: ruby-on-rails mongodb mongoid

您好我有嵌入文档但我不能通过id查询它们。我可以输出所有检查,并有正确的ID,但查询它们是不可能的。 我有一个课程模型embeds_many:course_members和一个Course_mber模型与embedded_in:course,:inverse_of => :course_members

我尝试了这个没有取得任何成功:

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

使用此代码,我可以访问rigth文档:

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

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

1 个答案:

答案 0 :(得分:6)

我想

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

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

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