Как использовать операторы $in и $nin в MongoDB?

Давайте поговорим о функциональном программировании Изучение

MongoDB поддерживает несколько операторов, помогающих извлекать документ из баз данных. Классы операторов, поддерживаемые MongoDB, включают сравнение, логику, операторы элементов и так далее. Операторы $ in (произносится как «in» ) и $ nin ( Not IN ) в MongoDB относятся к классу сравнения операторов MongoDB. Эти операторы предназначены только для значений массива и могут фильтровать коллекцию на основе существующих или несуществующих значений. Например, оператор $ in ищет значения массива и отображает только те документы, которые соответствуют массиву, тогда как оператор $ nin помогает отображать только те документы, которые не содержат значений (которые передаются оператору $ nin).

В этой статье мы предоставим подробное руководство по использованию операторов $ in и $ nin в MongoDB:

Рекомендуется заполнить следующие пункты списка предварительных требований, чтобы перейти к применению этих операторов.

Предпосылки

Этот раздел содержит набор компонентов из MongoDB, которые необходимо принять, чтобы следовать этому руководству:

  • База данных MongoDB
  • Коллекция внутри базы данных
  • Документы в коллекции

В этом посте мы будем использовать следующую базу данных и коллекцию для применения операторов $ in и $ nin:

Имя базы данных: bestprogrammer

Название коллекции: debian

Вы также должны вставить несколько документов в коллекцию.

Как использовать операторы $in и $nin в MongoDB

Эта статья разделена на две части; один относится к оператору $ in, а другой демонстрирует использование оператора $ nin.

Во-первых, мы проверим документы, доступные в нашей коллекции (чтобы мы могли выполнять соответствующие действия).

Подключитесь к MongoDB, выполнив следующую команду в терминале ubuntu: Замечено, что эта команда также автоматически подключит вас к оболочке mongo.

sudo mongo bestprogrammerlinuxhint

После этого вы можете получить отображение всех документов, доступных в вашей коллекции: Например, следующая команда поможет получить документы, доступные в коллекции » debian «:

> db.debian.find().pretty()

Как использовать оператор $ in в MongoDB

Оператор $ in будет искать массив и показать документ, соответствующий значению: Синтаксис $ in написан ниже:

{«field»{$in:[«value1», «value2»,….]}}

Вы должны указать имя поля и значения, которые вы хотите найти:

Пример 1. Использование $ in для сопоставления значения

Оператор $ in может использоваться для сопоставления значения в поле и печати документов, соответствующих этому значению. Например, следующая команда отобразит все те документы, у которых » число » (поле) равно значению » 20 «: Поскольку только один документ содержит значение » 20 «; таким образом печатается только этот:

> db.debian.find({num: {$in: [20]}}).pretty()

Пример 2: Использование $ in для сопоставления значений массива

Более того, вы также можете использовать оператор $ in для поиска значений массива в базе данных MongoDB. В нашем случае указанная ниже команда отобразит документы со значениями » mike » и » jack » в поле » Авторы» :

> db.debian.find({Authors: {$in: [«mike», «jack»]}}).pretty()

Пример 3: использование $ in для соответствия регулярным выражениям

Оператор $ in также может использоваться для сопоставления значений, заданных регулярным выражением: указанная ниже команда отобразит документы, содержащие поле » Тип «, а строки в поле начинаются с » ab » или » cd «:

> db.debian.find({Type{$in: [/^ab/, /^cd/]}}).pretty()

Как использовать оператор $nin в MongoDB

Оператор $ nin в MongoDB действует противоположно $ in; например, $ nin будет отображать документ, не содержащий указанного значения. Синтаксис похож на $ in и показан ниже:

{«filed»{$nin:[«value1», «value2»….]}}

Пример 1. Использование $ nin для сопоставления значения

Как уже упоминалось, этот оператор $ nin не отображает документ, соответствующий значению. Следующая команда отобразит документы, которые не содержат » 20 » в поле «число»:

Результат ниже показывает, что напечатанные документы не содержат значения » 20 «:

> db.debian.find({num: {$nin: [20]}}).pretty()

Пример 2: Использование $ nin для сопоставления значения массива

Следующая команда отобразит документы, которые не содержат » mike » и » john » в поле » Авторы «. Поскольку ни один из документов не остался позади, потому что во всех документах есть » mike » или » john » в качестве автора, будет пустой вывод:

> db.debian.find({Authors: {$nin: [«mike», «john»]}}).pretty()

Пример 3. Использование $ nin для сопоставления регулярного выражения

Оператор $ nin также используется для получения документов на основе регулярных выражений; Например, в приведенной ниже команде выбрано поле » Тип «, и $ nin будет печатать те документы, в которых значение » Тип » не начинается с » ab » или » cd «:

> db.debian.find({Type{$nin: [/^ab/, /^cd/]}}).pretty()

Примечание. Метод » pretty () «, используемый в этой статье, предназначен только для получения вывода в структурированной форме; вы можете использовать только find (), чтобы получить тот же результат, но неструктурированным способом.

Заключение

Правильное управление данными — первоочередная задача любой организации. Они должны хранить данные, и при необходимости предпочтение отдается быстрому извлечению данных. Некоторые системы управления базами данных предоставляют такую ​​функциональность, и MongoDB является одной из них. В этом посте мы описали использование двух операторов » $ in » и » $ nin «, которые помогают получать значения массива в базе данных MongoDB. Эти операторы помогают получить необходимые документы на основе значений, сопоставленных этими операторами. Оператор $ in печатает документ, содержащий совпадение; тогда как $ nin печатает те документы, которые не соответствуют значению.

Оцените статью
bestprogrammer.ru
Добавить комментарий