MongoDB OR 연산자

Mongodb Or Yeonsanja



MongoDB에서 사용할 수 있는 다양한 논리 쿼리 연산자가 있으며 그 중 하나가 $or 연산자입니다. MongoDB $or 연산자는 둘 이상의 표현식이 포함된 어레이에서 논리적 OR 연산을 구현하고 어레이의 지정된 표현식 중 하나와 일치하는 문서만 검색하는 데 사용됩니다. $or 연산자는 일치하는 문서 기준이 하나만 있는 단일 쿼리에서 여러 명령문을 찾는 데 사용됩니다. $or 연산자는 여러 키와 값의 조합을 용이하게 합니다.

MongoDB에서 OR 연산자를 사용하는 방법

MongoDB의 OR 연산자는 '$or' 형식으로 표시됩니다. '$or'는 논리적 OR 연산이 수행되는 대괄호로 여러 표현식을 묶는 데 사용됩니다. MongoDB 컬렉션에서 $or 연산자를 사용합니다. 'Patients'라는 제목의 MongoDB 컬렉션을 생성합니다. 'Patients' 컬렉션은 $or 연산자를 수행하는 여러 문서와 함께 삽입됩니다. 다음 문서는 insertMany() 메서드를 호출하여 MongoDB에 삽입됩니다.

db.Patients.insertMany ( [
{
'이름' : '제니퍼' ,
'성' : '조슈아' ,
'나이' : 44 ,
'전화 번호' : 43400517 ,
'약속' : '치과 의사' ,
'요금' : 2000년 ,
'시험' : [ '엑스레이' , '피' , '풀팔' ]
} ,
{
'이름' : '도마' ,
'성' : '스티븐' ,
'나이' : 74 ,
'전화 번호' : 39034694 ,
'약속 날짜' : '외과 의사' ,
'요금' : 6000 ,
'시험' : [ '임의로 선택할 수 있는' , '피피티' ]
} ,
{
'이름' : '찰스' ,
'성' : '다니엘' ,
'나이' : 35 ,
'전화 번호' : 65712165 ,
'약속' : '심장병 전문의' ,
'요금' : 2000년 ,
'시험' : [ 'CT' , 'MRI' ]
} ,
{
'이름' : '미셸' ,
'성' : '폴' ,
'나이' : 51 ,
'전화 번호' : 54399288 ,
'약속' : '피부과 전문의' ,
'요금' : 8000 ,
'시험' : [ '피부 생검' , '우드 라이트' , '스킨 스크래핑' ]
} ,

{
'이름' : '앤드류' ,
'성' : '실내 변기' ,
'나이' : 69 ,
'전화 번호' : 6108100 ,
'약속' : '심장병 전문의' ,
'요금' : 7000 ,
'시험' : [ '심전도' , '혈당' , '초음파' ]
}
] )

이전에 삽입된 문서의 출력은 'true'를 확인하고 각 문서에 대한 'insertedIds' 값을 제공합니다.









예 1: 문서를 일치시키는 MongoDB $OR 연산자

MongoDB $or 연산자의 기본 쿼리는 여기에서 구현되어 MongoDB에서 이 연산자의 작업을 보여줍니다. 여기서는 find() 메서드를 사용하여 쿼리를 정의합니다. find() 메서드는 $or 연산자로 추가로 지정됩니다. $or 연산자는 값이 할당된 'Appointment' 및 'Charges'의 두 필드를 사용합니다. $or 연산자는 필드 값을 일치시키고 해당 값이 필드 값과 일치하는 문서만 검색합니다. $or 연산자의 쿼리 구조는 다음과 같습니다.



db.Patients.find ( { $또는 : [ { 약속: '피부과 전문의' } ,
{ 요금: 7000 } ] } ) .예쁜 ( )

'Appointment'가 'Dermatologist'이고 'Charges'가 '7000'인 문서를 가져옵니다. $or 연산자는 두 필드 값 모두에서 참 결과를 찾고 일치하는 문서를 출력에 반환합니다.





예 2: 존재하지 않는 문서를 일치시키는 MongoDB $OR 연산자

$or 연산자의 이전 쿼리에서 일치하는 문서를 가져왔습니다. 이제 'Patient' 컬렉션에서 존재하지 않는 문서를 검색합니다. 다음 $or 연산자 쿼리는 'FirstName'이 'Charles'이고 'Appointment'가 'Physician'인 문서를 사용합니다. $or 연산자는 'Patients' 컬렉션 내에서 이러한 필드 값을 일치시키고 일치 후 결과를 생성합니다.



db.Patients.find ( { $또는 : [ { '이름' : '찰스' } , { '약속' : '내과 의사' } ] } ) .예쁜 ( )

$or 연산자는 하나의 참 결과를 갖고 다른 하나는 거짓 결과를 가집니다. 'Patient' 컬렉션의 어떤 문서와도 일치하지 않는 'Physician' 값으로 'Appointment'를 지정합니다. 그렇기 때문에 $or 연산자는 'Patient'인 일치하는 필드의 문서만 출력으로 반환합니다.

예 3: 인수가 여러 개인 MongoDB $OR 연산자

이전 $or 연산자 쿼리에서 두 개의 인수를 제공했습니다. 여기서 $or 연산자 표현식으로 두 개 이상의 인수를 전달합니다. 제공된 'Age' 필드 값과 일치하는 문서를 검색합니다. $or 연산자 요구 사항은 표현식 중 하나가 참이어야 하는 다중 인수에 대해 동일합니다. $or 연산자의 여러 인수에 대한 쿼리는 다음과 같이 제공됩니다.

db.Patients.find ( { '약속' : '심장병 전문의' , $또는 : [ { '나이' : 이십 } , { '나이' : 35 } , { '나이' : 69 } ] } )

여기에는 $or 연산자에서 얻은 두 개의 일치 결과가 있습니다. '35' 및 '69'인 'Age' 값은 $or 연산자로 얻은 'Patients' 문서와 비교되어 쉘에 표시됩니다.

예 4: 집계가 있는 MongoDB $OR 연산자

MongoDB의 집계 메서드는 레코드를 컬렉션으로 결합합니다. 따라서 다양한 작업에 사용할 수 있습니다. 하나 이상의 식을 평가하고 그 중 하나라도 true로 평가되면 true를 반환하는 집계 메서드에서 $or 연산자를 수행합니다. 그렇지 않으면 진술은 거짓으로 간주됩니다.

$or 집계 연산자 쿼리에서 먼저 aggregate() 메서드를 호출한 다음 문서에서 일치할 _id 값으로 지정된 $match 및 $project를 배포하도록 합시다. 그런 다음 모든 문서에서 이 필드만 생성되기를 원하기 때문에 'Age' 필드를 값 '1'로 설정합니다. 그런 다음 $or 연산이 있는 'Results' 속성을 정의합니다. $or 연산자는 $gt의 조건문을 사용합니다. '$gt:['$Age', 69]' 표현식은 값이 '69'보다 큰 연령을 제공합니다. 이 식의 결과는 $or 연산자에 전달되고 $or 연산자는 지정된 조건을 충족하는 문서를 반환합니다.

db.Patients.aggregate (
[
{ $매치 : { _id: 개체 ID ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $프로젝트 : {
_id: 개체 ID ( '6391c61a4c91e007fb4f0227' ) ,
나이: 하나 ,
결과: { $또는 : [
{ $gt : [ ' $나이 ' , 69 ] }
] }
}
}
]
)

'69'보다 큰 'Age'는 'true' 값을 갖는 'Results'와 함께 출력 셸에 표시되는 '74'입니다.

예 5: MongoDB $OR 연산자가 조건을 호출합니다.

MongoDB의 $or 연산자는 논리 연산자입니다. 이 논리 연산자를 조건 연산자와 함께 사용할 수 있습니다. $or 연산자는 조건이 충족되면 결과를 반환합니다. 또한 $or 연산자에서 true여야 하는 조건을 두 개 이상 호출할 수 있습니다. 여기에 두 가지 다른 조건으로 지정된 $or 연산자의 쿼리가 있습니다. 첫 번째 조건은 '요금' 값 '6000'보다 작은 문서를 반환하는 '{요금:{$lt: 6000}}'입니다. {Charges:'$gt: 7000'} 조건은 'Charges' 값 '7000'보다 큰 문서를 가져옵니다.

$or 연산자는 이러한 조건이 충족될 때 일치하는 문서를 제공합니다. 그런 다음 $or 연산자가 일치하는 문서를 제공할 때만 표시되는 필드의 이름을 지정합니다.

db.Patients.find ( {
$또는 : [
{ 요금: { $lt : 6000 } } ,
{ 요금: { $gt : 7000 } }
]
} , {
이름: 하나 ,
요금: 하나
} )

출력에는 일치하는 문서에 대한 'FirstName' 및 'Charges' 필드만 표시됩니다.

예 6: 인수가 없는 MongoDB $OR 연산자

$or 연산자로 구현된 모든 쿼리는 인수 값과 함께 전달됩니다. 이제 인수를 입력하지 않는 $or 연산자 쿼리를 정의합니다. 빈 인수 $or 연산자 쿼리가 실행되면 잘못된 결과를 평가합니다. $or 연산이 빈 표현식과 함께 전달되는 쿼리를 제공합니다.

db.Patients.aggregate (
[
{ $매치 : { _ID: { $in : [ 개체 ID ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $프로젝트 : {
_id: 개체 ID ( '6391c61a4c91e007fb4f0227' ) ,
결과: { $또는 : [ ] } }
}
]
)

$or 연산자에 빈 인수가 제공된 결과 결과는 거짓 값을 나타냅니다.

예 7: MongoDB $OR 연산자가 배열 값과 일치

값이 다른 문서에 'Test' 배열을 삽입합니다. $or 연산자에 해당 배열을 사용하여 결과를 검사합니다. 다음 쿼리의 $or 연산자는 find() 메서드 내에서 호출됩니다. $or 연산자는 'Test' 배열을 표현식으로 사용합니다. 'Test' 배열은 $in 연산자를 사용하여 필드 값이 배열의 'MRI' 및 'CT' 값과 일치하는 문서를 식별합니다.

db.Patients.find ( { $또는 : [ { 시험: { $in : [ 'MRI' , 'CT' ] } } ] } ) .예쁜 ( )

검색된 문서에 지정된 배열 값이 포함되어 있음을 나타내는 $or 쿼리 연산자가 실행될 때 하나의 문서가 셸에 표시됩니다.

결론

이 MongoDB 기사는 MongoDB $or 연산자 쿼리를 사용하여 두 개 이상의 표현식이 포함된 배열에서 논리적 OR 연산을 실행하고 하나 이상의 표현식과 일치하는 문서를 검색하는 방법을 보여줍니다. $or 연산자는 다른 작업을 수행하기 위해 MongoDB 셸에서 쿼리됩니다. $or 연산자는 조건 연산자에서 표현식으로 사용되며 조건문을 기반으로 문서를 반환합니다.