MongoDB, являющаяся базой данных NoSQL, поддерживает множество классов операторов для извлечения данных из базы данных. Класс элемента запроса в одном из них; он состоит из двух операторов; $ существует и $ type. Оператор $ exists вступает в действие, когда вы хотите получить документы, содержащие или не содержащие поля (указанные в запросе $ exists). Основа команды $ exists основана на логических значениях, которые определяют вывод в соответствии с требованиями пользователя.
Использование оператора $ exists не ограничивается только получением или игнорированием всего документа на основе одного поля. Вывод можно улучшить, используя $ exists с несколькими операторами сравнения, такими как $ gt, $ lt, $ eq, $ nin.
Эта статья призвана дать более глубокое представление об операторе $ exists в MongoDB:
Как работает оператор $ exists
Основная функция оператора $ exists в MongoDB — проверять наличие любого поля в документе. Оператор $ exists работает на основе логических значений, то есть true или false. Синтаксис оператора приведен ниже:
{field: {$exists: «Boolean-Value»}}
Если передано значение » истина «, то отображаются все документы с указанным полем. Однако, если для логического значения установлено значение » false «, печатаются документы, отличные от указанного поля.
Как использовать оператор $ exists в MongoDB
Перед тем, как начать; требуется подключиться к базе данных MongoDB и получить содержимое этой базы данных, к которой будет применен оператор $ exists.
База данных, используемая в этой статье, называется linuxhint.
И коллекция, связанная с этой базой данных: сотрудники
Подключитесь к своей базе данных с помощью терминала ubuntu, используя указанную ниже команду:
$ sudo mongo linuxhint
Следующий контент будет использован в этом посте в качестве примера для практики использования оператора $ exists :
> db.staff.find().pretty()
Пример 1. Базовое использование оператора $ exists
Функциональность $ exists зависит от переданных ему логических значений: если вы хотите получить документ, содержащий указанное поле, вы должны передать ему значение » true «. Однако, когда вы передаете значение » false » в $ exists, вы получите документы, которые не содержат указанное поле.
Этот пример демонстрирует использование » true » в операторе $ exists: запрос, упомянутый ниже, будет извлекать все те документы, которые содержат поле » experience «:
> db.staff.find({experience: {$exists: true}}).pretty()
Более того, указанная ниже команда показывает использование значения » false «, и вывод будет содержать только те документы, в которых нет поля » опыт «:
> db.staff.find({experience: {$exists: false}}).pretty()
Пример 2: использование $ существует с операторами сравнения
Этот пример демонстрирует использование команды $ exists с операторами сравнения. В этом случае результат отображается после двойных фильтров. Первый фильтр применяется, когда выполняется $ exists, а второй вступает в действие при вызове любого оператора сравнения:
Использование $ exists с оператором $ gt: этот оператор сравнения используется для отображения значений, удовлетворяющих условию » больше «. В нашей » штатной » коллекции базы данных » linuxhint «; есть поле » Зарплата «. Например, приведенный ниже запрос даст результат при следующих условиях:
Во-первых, оператор $ existsфильтрует документы, содержащие поле » Salary «:
После этого оператор $ gtраспечатает только те документы, у которых значение » Зарплата » больше » 150 «:
> db.staff.find({Salary: {$exists: true, $gt: 150}}).pretty()
Использование $ exists с оператором $ nin: оператор $ nin может также использоваться с оператором $ exists, и эти операторы работают последовательно, как показано ниже:
— Во-первых, $ exists выберет документы на основе указанного поля:
— Затем $ nin помогает распечатать документы, не содержащие указанных значений:
Например, следующая команда распечатает документы на основе поля » обозначение «; сотрудники, имеющие обозначение, отличное от » Руководитель группы «, попадут в этот запрос:
> db.staff.find({designation: {$exists: true, $nin: [«Team-lead»]}}).pretty()
Точно так же можно практиковать различные операторы сравнения с помощью команды $ exists для получения более точного вывода.
Заключение
Функция запросов в любой системе управления базами данных играет ключевую роль в извлечении данных. Поскольку у крупных организаций есть сложные формы данных, хранящиеся в их базах данных; поэтому компании предпочитают применять запросы для извлечения требуемых данных в установленные сроки. Операторы — ключевой компонент любого запроса; В этой статье мы попрактиковались в использовании оператора $ exists в MongoDB. Этот оператор можно использовать для проверки наличия полей в документах, и вы можете получить те документы, которые не содержат указанного поля. Вышеупомянутая функциональность оператора $ exists поддерживается » логическим значением «, которое может быть передано оператору.