【发布时间】:2014-04-29 10:17:14
【问题描述】:
什么是 mongoid/ruby 语法:
我想查询一个Parent,包括所有Children(急切地)通过一些独特的Child属性(不是_id)搜索。
class Parent
include Mongoid::Document
field :first_name, :type => String
field :last_name, :type => String
has_many :children, :class_name => 'Child', :inverse_of => :parent
end
class Child
include Mongoid::Document
field :first_name, :type => String
field :last_name, :type => String
belongs_to :parent, :class_name => 'Parent', :inverse_of => :children
end
在 SQL 中,我会写
SELECT p.*, c.*
FROM Parent p
INNER JOIN Child c
ON c.parent_id = p._id
WHERE EXISTS (
SELECT 1 FROM Child c2 WHERE c2.first_name = 'Aaron' AND c2.parent_id = p._id
);
【问题讨论】:
-
mongoid 你用的是哪个版本?
-
mongoid 版本 3.0.23
-
我是否应该费心尝试创建一个查询?我的心态一直是减少数据库请求的数量,但我想我可以忍受,
c = Child.find_by(:first_name => 'Aaron'); p = Parent.includes(:children).find(c.parent_id)