使用1:M关系的Mongoid查询

时间:2018-11-30 06:00:54

标签: mongoid

我有一个收藏夹A和一个收藏夹B

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

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

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

如何查询以仅选择A.B.大小为0的那些A'

例如:A.where(某些条件)和(:A.B.size => 0)

1 个答案:

答案 0 :(得分: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