我正在尝试手动构建一系列查询来解决mongo缺少连接和mongoid缺乏急切加载的问题。假设我有两个班级:
class A
include Mongoid::Document
has_many :bs
...
class B
include Mongoid::Document
belongs_to :a
...
如果我在bs上运行查询:
bs = B.where(...)
结果是MongoidCriteria
但是,如果我尝试通过调用bs.first来获取第一个b,它会立即触发关联的mongo查询。这正是我想要避免的(如果我有1000个b,我试图避免1000个单例b查询)。
这很好,但是当我有复杂的关系时,我想通过自己手动指定模型,收集id以及唯一返回核心模型而没有关联来解决缺乏急切加载的问题。
有什么能让我这样做吗?类似的东西:
bs = B.where(...).disable_automatic_association_queries
这样的事情存在吗?
答案 0 :(得分:0)
方法是.without。例如:
A.where(...).without(:bs)