Mongoid嵌入式查询

use*_*801 1 ruby-on-rails mongodb mongoid

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

我没有成功地试过这个:

puts Course.where("course_members.id" => params[:id])
Run Code Online (Sandbox Code Playgroud)

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

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

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

Tho*_*ory 6

我猜

puts Course.where("course_members._id" => BSON::ObjectId(params[:id]))
Run Code Online (Sandbox Code Playgroud)

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

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