我有一个收藏夹A和一个收藏夹B
在模型A中,我声明了-has_many:B
在模型B中,我声明了-Emirates_to:A
所以我可以像'A.B'这样查询,它返回与A关联的所有B。
如何查询以仅选择A.B.大小为0的那些A'
例如:A.where(某些条件)和(:A.B.size => 0)
答案 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