Для того чтобы получить документы по двум и более запросам одновременно у MongoEngine имеется класс Q.
from mongoengine import Q
Объект Q представляет собой часть запроса, и может быть инициализирован, используя тот же синтаксис, что и для запроса документов. Для построения сложного запроса вы можете объединить объекты Q с помощью операторов & (логическое и) и | (логическое или). Чтобы организовать сложную фильтрацию с использованием объекта Q, передайте его в качестве первого аргумента Document.objects с необходимыми параметрами.
Пример №1
animals = Animals.objects(Q(hunters=True) & Q(size=big)).all()
В данном примере мы получаем всех животных, являющимися крупными хищниками.
Пример №2
cars = Cars.objects(Q(brand=toyota) & (Q(color=white) | Q(color=grey))).all()
А тут мы получаем черные и серые машины марки toyota
Обратите внимание! Разрешено использование только битовых операторов & и |. Использование вместо них логических and и or, приведет к неправильному выполнению запроса.
Так запрос:
animals = Animals.objects(Q(hunters=True) and Q(size=big)).all()
Будет обработан как:
animals = Animals.objects(Q(hunters=True)).all()
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…