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

Mongodb Ili Operator



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

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

Операторът OR в MongoDB е представен във формат „$or“. „$or“ се използва за ограждане на множество изрази в квадратни скоби, върху които се изпълнява логическата операция ИЛИ. Използваме оператора $or в колекцията MongoDB. Ние създаваме колекцията MongoDB, която е озаглавена „Пациенти“. Колекцията „Пациенти“ се вмъква с множеството документи, върху които изпълняваме оператора $or. Следните документи се вмъкват в MongoDB чрез извикване на метода insertMany():

db.Patients.insertMany ( [
{
'Първо име' : 'Дженифър' ,
'Фамилия' : 'Джошуа' ,
'възраст' : 44 ,
'Телефонен номер' : 43400517 ,
'Назначаване' : 'Зъболекар' ,
'Обвинения' : 2000 г ,
'Тест' : [ 'Рентгенов' , 'кръв' , 'Пулпал' ]
} ,
{
'Първо име' : 'Томас' ,
'Фамилия' : 'Стивън' ,
'възраст' : 74 ,
'Телефонен номер' : 39034694 ,
'Дата на среща' : 'Хирург' ,
'Обвинения' : 6000 ,
'Тест' : [ 'избираем' , 'PPT' ]
} ,
{
'Първо име' : 'Чарлз' ,
'Фамилия' : 'Даниел' ,
'възраст' : 35 ,
'Телефонен номер' : 65712165 ,
'Назначаване' : 'Лекар по кардиология' ,
'Обвинения' : 2000 г ,
'Тест' : [ 'CT' , 'ЯМР' ]
} ,
{
'Първо име' : 'Мишел' ,
'Фамилия' : 'Пол' ,
'възраст' : 51 ,
'Телефонен номер' : 54399288 ,
'Назначаване' : 'Дерматолог' ,
'Обвинения' : 8000 ,
'Тест' : [ 'Кожни биопсии' , 'Дървена светлина' , 'Остъргване на кожата' ]
} ,

{
'Първо име' : 'Андрю' ,
'Фамилия' : 'Джери' ,
'възраст' : 69 ,
'Телефонен номер' : 6108100 ,
'Назначаване' : 'Лекар по кардиология' ,
'Обвинения' : 7000 ,
'Тест' : [ 'ЕКГ' , 'Кръвна захар' , 'ултразвук' ]
}
] )

Резултатът от предварително вмъкнатите документи потвърждава „true“ и предоставя стойностите „insertedIds“ за всеки документ.









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

Основната заявка на оператора MongoDB $or е реализирана тук, което демонстрира работата на този оператор в MongoDB. Тук дефинираме заявка с метода find(). Методът find() е допълнително специфициран с оператора $or. Операторът $or взема две полета, „Среща“ и „Такси“, които са присвоени със стойностите. Операторът $or съвпада със стойността на полето и извлича само тези документи, чиито стойности съвпадат със стойностите на полето. Структурата на заявката на оператора $or е предоставена по следния начин:



db.Patients.find ( { $или : [ { Назначаване: 'Дерматолог' } ,
{ Обвинения: 7000 } ] } ) .красива ( )

Извличаме документите, чието „Назначаване“ е при „Дерматолог“ и чиито „Такси“ са „7000“. Операторът $or намира верни резултати от двете стойности на полето и връща съответстващите документи в изхода.





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

В предишната заявка на оператора $or извлякохме съответстващите документи. Сега извличаме несъществуващия документ от колекцията „Пациент“. Следната заявка на оператора $or взема документа, чието „FirstName“ е „Charles“, а „Appointment“ е при „Physician“. Операторът $or съпоставя тези стойности на полетата в колекцията „Пациенти“ и генерира резултатите след съпоставяне.



db.Patients.find ( { $или : [ { 'Първо име' : 'Чарлз' } , { 'Назначаване' : 'лекар' } ] } ) .красива ( )

Операторът $or има един верен резултат, а другият има неверен резултат. Тъй като указваме „Назначаване“ със стойността „Лекар“, която не съответства на нито един от документите в колекцията „Пациент“. Ето защо операторът $or връща като изход само документа на съвпадащото поле, което е „Пациент“.

Пример 3: MongoDB $OR оператор с множество аргументи

Предоставихме два аргумента в предишните заявки за оператор $or. Тук предаваме повече от два аргумента като операторен израз $or. Извличаме документа, който съответства на която и да е от стойностите на полето „Възраст“, ​​които са му дадени. Изискването на оператора $or е същото за множеството аргументи, че един от изразите трябва да е верен. Заявката за множество аргументи в оператора $or се дава, както следва:

db.Patients.find ( { 'Назначаване' : 'Лекар по кардиология' , $или : [ { 'възраст' : двадесет } , { 'възраст' : 35 } , { 'възраст' : 69 } ] } )

Там имаме два съвпадащи резултата, които се получават от оператора $or. Стойностите „Възраст“, ​​които са „35“ и „69“, се сравняват с документите „Пациенти“, които се получават от оператора $or и се показват в обвивката.

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

Агрегираният метод в MongoDB комбинира записите в колекция. Следователно те могат да се използват за различни операции. Ние изпълняваме оператора $or в метода за агрегиране, който оценява един или повече изрази и връща true, ако някой от тях се изчисли като true. В противен случай твърдението се счита за невярно.

Нека имаме заявката за оператор $or за агрегиране, където първо извикваме метода aggregate(), който след това разгръща $match и $project, който е посочен със стойността _id, която трябва да бъде съпоставена от документа. След това задаваме полето „Възраст“ със стойност „1“, защото искаме само това поле да се генерира от всички документи. След това дефинираме атрибута „Резултати“, който има операцията $or. Операторът $or приема условния израз на $gt. Изразът “$gt:[“$Age”, 69]” дава възрастта, чиято стойност е по-голяма от “69”. Резултатите за този израз се предават на оператора $or и операторът $or връща документа, който отговаря на зададеното условие.

db.Patients.aggregate (
[
{ $съвпадение : { _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.Patients.find ( {
$или : [
{ Обвинения: { $lt : 6000 } } ,
{ Обвинения: { $gt : 7000 } }
]
} , {
Първо име: един ,
Обвинения: един
} )

Изходът показва само полетата „FirstName“ и „Charges“ за съответстващите документи.

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

Всички изпълнени заявки с оператора $or се предават със стойността на аргумента. Сега дефинираме операторската заявка $or, която не въвежда аргумент. Когато празният аргумент $или операторска заявка се изпълни, той оценява грешните резултати. Даваме заявка, при която операцията $or се предава с празния израз.

db.Patients.aggregate (
[
{ $съвпадение : { _документ за самоличност: { $in : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $проект : {
_id: ИД на обект ( '6391c61a4c91e007fb4f0227' ) ,
Резултат: { $или : [ ] } }
}
]
)

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

Пример 7: Оператор MongoDB $OR съвпада със стойностите на масива

Вмъкваме масива „Тест“ в документите, които имат различни стойности. Използваме този масив за оператора $or, за да проверим резултатите. Операторът $or в следната заявка се извиква в метода find(). Операторът $or приема масива „Тест“ като израз. Масивът „Тест“ използва оператора $in, за да идентифицира документите, чиито стойности на полето съвпадат със стойностите на „ЯМР“ и „КТ“ в масива.

db.Patients.find ( { $или : [ { Тест: { $in : [ 'ЯМР' , 'CT' ] } } ] } ) .красива ( )

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

Заключение

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