Оператор MongoDB ИЛИ

Operator Mongodb Ili



У нас есть разные операторы логических запросов, доступные в MongoDB, и одним из них является оператор $or. Оператор MongoDB $or используется для реализации логической операции ИЛИ над массивом, содержащим два или более выражений, и извлечения только тех документов, которые соответствуют любому из указанных выражений в массиве. Оператор $or используется для поиска нескольких операторов в одном запросе только с одним совпадающим критерием документа. Оператор $or упрощает комбинацию нескольких ключей и значений.

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

Оператор ИЛИ в MongoDB представлен в формате «$or». «$or» используется для заключения нескольких выражений в квадратные скобки, над которыми выполняется логическая операция ИЛИ. Мы используем оператор $or для коллекции MongoDB. Мы создаем коллекцию MongoDB под названием «Пациенты». Коллекция «Пациенты» вставляется с несколькими документами, над которыми мы выполняем оператор $or. Следующие документы вставляются в MongoDB с помощью метода insertMany():

db.Patients.insertMany ( [
{
'Имя' : 'Дженнифер' ,
'Фамилия' : 'Джошуа' ,
'Возраст' : 44 ,
'Номер телефона' : 43400517 ,
'Деловое свидание, встреча' : 'Дантист' ,
«Сборы» : 2000 г. ,
'Контрольная работа' : [ 'Рентгеновский снимок' , 'Кровь' , 'Пульпал' ]
} ,
{
'Имя' : 'Томас' ,
'Фамилия' : 'Стивен' ,
'Возраст' : 74 ,
'Номер телефона' : 39034694 ,
'Назначенная дата' : 'Врач хирург' ,
«Сборы» : 6000 ,
'Контрольная работа' : [ «Выборный» , 'ППТ' ]
} ,
{
'Имя' : 'Чарльз' ,
'Фамилия' : 'Дэниел' ,
'Возраст' : 35 ,
'Номер телефона' : 65712165 ,
'Деловое свидание, встреча' : 'Врач-кардиолог' ,
«Сборы» : 2000 г. ,
'Контрольная работа' : [ 'КТ' , 'МРТ' ]
} ,
{
'Имя' : 'Мишель' ,
'Фамилия' : 'Павел' ,
'Возраст' : 51 ,
'Номер телефона' : 54399288 ,
'Деловое свидание, встреча' : 'Дерматолог' ,
«Сборы» : 8000 ,
'Контрольная работа' : [ «Биопсия кожи» , 'Деревянный свет' , «Соскоб кожи» ]
} ,

{
'Имя' : 'Эндрю' ,
'Фамилия' : 'Джерри' ,
'Возраст' : 69 ,
'Номер телефона' : 6108100 ,
'Деловое свидание, встреча' : 'Врач-кардиолог' ,
«Сборы» : 7000 ,
'Контрольная работа' : [ 'ЭКГ' , «Глюкоза крови» , «УЗИ» ]
}
] )

Вывод ранее вставленных документов подтверждает «true» и предоставляет значения «insertedIds» для каждого документа.









Пример 1: оператор MongoDB $OR для сопоставления документов

Здесь реализован базовый запрос оператора MongoDB $or, который демонстрирует работу этого оператора в MongoDB. Здесь мы определяем запрос с помощью метода find(). Метод find() дополнительно специфицируется оператором $or. Оператор $or принимает два поля: «Встреча» и «Сборы», которым присваиваются значения. Оператор $or сопоставляет значение поля и извлекает только те документы, значения которых совпадают со значениями поля. Структура запроса оператора $or представлена ​​следующим образом:



db.Пациенты.найти ( { $ или : [ { Деловое свидание, встреча: 'Дерматолог' } ,
{ Сборы: 7000 } ] } ) .красивая ( )

Мы получаем документы, у которых «Назначение» — «Дерматолог», а «Сборы» — «7000». Оператор $or находит истинные результаты из обоих значений полей и возвращает соответствующие документы в выходных данных.





Пример 2: оператор MongoDB $OR для сопоставления с несуществующими документами

В предыдущем запросе оператора $or мы получили совпадающие документы. Теперь мы извлекаем несуществующий документ из коллекции «Пациент». Следующий запрос оператора $or берет документ, в котором «Имя» — «Чарльз», а «Назначение» — «Врач». Оператор $or сопоставляет значения этих полей в коллекции «Пациенты» и генерирует результаты после сопоставления.



db.Пациенты.найти ( { $ или : [ { 'Имя' : 'Чарльз' } , { 'Деловое свидание, встреча' : 'Врач' } ] } ) .красивая ( )

Оператор $or имеет один истинный результат, а другой — ложный. Поскольку мы указываем «Прием» со значением «Врач», который не соответствует ни одному из документов в коллекции «Пациент». Вот почему оператор $or возвращает в качестве вывода только документ соответствующего поля, который является «Пациент».

Пример 3. Оператор MongoDB $OR с несколькими аргументами

В предыдущих запросах оператора $or мы предоставили два аргумента. Здесь мы передаем более двух аргументов в качестве выражения оператора $or. Мы извлекаем документ, который соответствует любому из заданных ему значений поля «Возраст». Требование оператора $or одинаково для нескольких аргументов, что одно из выражений должно быть истинным. Запрос нескольких аргументов в операторе $or задается следующим образом:

db.Пациенты.найти ( { 'Деловое свидание, встреча' : 'Врач-кардиолог' , $ или : [ { 'Возраст' : двадцать } , { 'Возраст' : 35 } , { 'Возраст' : 69 } ] } )

Там у нас есть два совпадающих результата, которые получены с помощью оператора $or. Значения «Возраст» «35» и «69» сравниваются с документами «Пациенты», которые получены оператором $or и отображаются в оболочке.

Пример 4: оператор MongoDB $OR с агрегацией

Агрегатный метод в MongoDB объединяет записи в коллекцию. Поэтому их можно использовать для разных операций. Мы выполняем оператор $or в методе агрегации, который оценивает одно или несколько выражений и возвращает true, если какое-либо из них оценивается как true. В противном случае утверждение считается ложным.

Пусть у нас есть запрос оператора агрегации $or, в котором мы сначала вызываем метод агрегата(), который затем развертывает $match и $project, указанный со значением _id для сопоставления из документа. Затем мы устанавливаем поле «Возраст» со значением «1», потому что мы хотим, чтобы это поле создавалось только из всех документов. После этого мы определяем атрибут «Результаты», который имеет операцию $or. Оператор $or принимает условный оператор $gt. Выражение «$gt:[«$Age», 69]» дает возраст, значение которого больше «69». Результаты этого выражения передаются оператору $or, а оператор $or возвращает документ, соответствующий указанному условию.

db.Пациенты.агрегат (
[
{ $матч : { _id: идентификатор объекта ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $проект : {
_id: идентификатор объекта ( '6391c61a4c91e007fb4f0227' ) ,
Возраст: один ,
Результат: { $ или : [
{ $gt : [ ' $Возраст ' , 69 ] }
] }
}
}
]
)

«Возраст», который больше «69», равен «74», который отображается в оболочке вывода вместе с «Результатами», имеющими «истинное» значение.

Пример 5: оператор MongoDB $OR вызывает условия

Оператор $or в MongoDB является логическим оператором. Мы можем использовать этот логический оператор с условным оператором. Оператор $or возвращает результаты, когда выполняются условия. Кроме того, мы можем вызвать более одного условия в операторе $or, из которых одно должно быть истинным. Здесь у нас есть запрос оператора $or, который указан с двумя разными условиями. Первое условие — «{Charges: {$lt: 6000}}», которое возвращает документ, который меньше, чем значение «Charges», равное «6000». Условие {Charges: «$gt: 7000»} получает документ, который превышает значение «Charges», равное «7000».

Оператор $or дает соответствующий документ, когда эти условия выполняются. Затем мы указываем имена полей, которые отображаются только тогда, когда оператор $or дает соответствующий документ.

db.Пациенты.найти ( {
$ или : [
{ Сборы: { $lt : 6000 } } ,
{ Сборы: { $gt : 7000 } }
]
} , {
Имя: один ,
Сборы: один
} )

В выходных данных отображаются только поля «Имя» и «Сборы» для соответствующих документов.

Пример 6: MongoDB оператор $OR без аргумента

Все реализованные запросы с оператором $or передаются со значением аргумента. Теперь мы определяем запрос оператора $or, который не вводит никаких аргументов. Когда пустой аргумент $или запрос оператора выполняется, он оценивает ложные результаты. Мы даем запрос, в котором операция $or передается с пустым выражением.

db.Пациенты.агрегат (
[
{ $матч : { _я бы: { $in : [ идентификатор объекта ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $проект : {
_id: идентификатор объекта ( '6391c61a4c91e007fb4f0227' ) ,
Результат: { $ или : [ ] } }
}
]
)

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

Пример 7. Оператор MongoDB $OR сопоставляет значения массива

Вставляем массив «Тест» в документы, имеющие разные значения. Мы используем этот массив для оператора $or для проверки результатов. Оператор $or в следующем запросе вызывается внутри метода find(). Оператор $or принимает массив «Test» в качестве выражения. Массив «Тест» использует оператор $in для идентификации документов, значения полей которых соответствуют значениям «МРТ» и «КТ» в массиве.

db.Пациенты.найти ( { $ или : [ { Контрольная работа: { $in : [ 'МРТ' , 'КТ' ] } } ] } ) .красивая ( )

Один документ отображается в оболочке при выполнении оператора запроса $or, который показывает, что извлеченный документ содержит указанные значения массива.

Заключение

В этой статье MongoDB показано использование запроса оператора MongoDB $or для выполнения логических операций ИЛИ над массивом, включающим два или более выражений, а также для извлечения документов, соответствующих хотя бы одному из выражений. Оператор $or запрашивается в оболочке MongoDB для выполнения различных операций. Оператор $or используется в условных операторах как выражение и возвращает документы на основе условных операторов.