У меня есть 2 коллекции на 2 отдельных БД.Оба хранят поле массива.Я планирую запросить оба сразу, так что:
Все документы коллекции 1, которые имеют элементы [A, B] в своем поле массива и их _ids, присутствуют в поле массива коллекции 2 с определенным документом _id.
Например:
документы (коллекция 1, БД 1):
[{"_id":ObjectId("doc1"), "array1":["A","B"]}, {"_id":ObjectId("doc2"), "array1":["A","C"]}]
user_docs (коллекция 2, БД 2):
[{"_id":ObjectId("usr1"), "array2": [ObjectId("doc1"),ObjectId("foo")]}, {"_id":ObjectId("usr2"), "array2": [ObjectId("bar"),ObjectId("baz")]}]
Мне нужен запрос, который дает A, B и usr1, возвращает объект 'doc1' (потому что он имеет A, B в своем поле array1 и usr1 имеет его в своем поле array2).
Я, очевидно, могу получить все документы с A, B в одном запросе и все документы usr1 в другом запросе и найти общие элементы на уровне приложения, но есть ли лучший способ сделать это с помощью MongoDB?
Спасибо заваша помощь.