У меня есть список URL-адресов (ресурсов) и список представлений для каждого ресурса, все они хранятся в базе данных mongodb.Другими словами, у resource
есть много связанных views
.
. И ресурсы, и представления содержат поле url
, которое я использую для идентификации веб-сайта, о котором ресурс и представление.
У меня есть список URL-адресов в переменной urls
, и я хочу вернуть для каждого из них в том же порядке URL-адреса , только одно из представлений, который связан с этим URL.
Итак, мне интересны два критерия:
- Запрос с использованием оператора $ in, сохраняющий порядок результатов относительносписок, который я пропустил.
- Возвращает только один элемент для каждого ключа в списке $ in.
Конечно, я могу перебирать свой код и делать что-то подобное (в python)):
views = []
for url in urls:
views.append(db.views.find_one({"url": url}))
Я не знаю, как точно ведет себя оператор $in
и может ли он решить мою проблему, но я боюсь, что он не сохранит интересующий меня порядок. Может бытья могу отсортировать результаты после запроса?
Но это означает, что нужно сделать N запросов для N URL, которыеOes не кажется оптимизированным на всех.Есть ли способ избежать этого?