使用1:M关系的Mongoid查询



我有一个集合a和集合B

在模型A中,我声明了-has_many:B

在模型B中,我声明了-belongs_to:A

所以我可以像"A.B"这样查询,它返回与A.相关的所有B

如何查询只选择A.B.size为0 的A

例如:A.where(some_condition(.和(:A.B.size=>0(

A=A的集合名称B=B 的集合名称

首先,我们将获取插入B中的A的所有唯一外键。

data_in_b = B.where(condition).pluck(:a_id)
a_ids = A.all.pluck(:_id) // ["id1", "id2", "id3", "id4", "id5"]
if data_in_b.count > 0 
a_fks_in_b = data_in_b.uniq // ["id1", "id5"]
ids_in_a_without_b = a_ids - a_fks_in_b // ["id2", "id3", "id5"]
end

最新更新