Монгоидный запрос с использованием отношения 1: M - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть коллекция A и коллекция B

В Model AI объявили - has_many: B

В Model BI объявили - own_to: A

Так что я могузапрос типа 'AB', который возвращает все B, связанные с A.

Как запросить, чтобы выбрать только те A, где ABsize равен 0

Например: A.where (some_condition) .and (: ABsize=> 0)

1 Ответ

0 голосов
/ 11 декабря 2018

A = имя коллекции для A B = имя коллекции для B

Сначала мы выберем все уникальные посторонние ключи A, которые вставлены в B.

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
...