У меня есть 3 коллекции в MongoDB, которые не могут изменить их схему. Некоторым запросам необходимо получить доступ к 3 коллекциям.Каков наиболее эффективный способ запроса нескольких коллекций в MongoDB?
Я знаю, что мне нужно несколько запросов для этого, но я не уверен, что самый эффективный способ сделать это. Пример упрощенного примера:
Мои данные содержат коллекцию «Пользователь», которая служит логическим родителем для двух других коллекций. Две другие коллекции - «DVD» и «CD». Пользователь может иметь несколько компакт-дисков или DVD-дисков
User Document
id : "jim",
location : "sweden"
CD Document
name : "White Album",
owner : "jim"
DVD Document
name : "Fargo",
owner : "jim"
Теперь подход, который я принимаю сейчас, заключается в следующем. Если я хочу вернуть все компакт-диски и DVD-диски для пользователей в Швеции.
Шаг 1
Get all users in Sweden and return a cursor
Шаг 2
Iterate through the each user in the cursor and perform a lookup on both the DVD and CD collections to see if the users id matches the owner field
Шаг 3
If it does add the user to an array to be returned
Этот подход требует 2а и мне кажется неэффективным. Есть ли более эффективный способ сделать это?
Почему CD и DVD не находятся в одной коллекции? – Philipp
@Phillip Это просто упрощенный пример – Travis