Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

존재를 기반으로 레코드를 가져오기 위해 MongoDB에서 또는 연산자를 사용하는 방법은 무엇입니까?

<시간/>

$or를 사용하여 레코드를 가져오려면 $exists와 함께 $or를 사용합니다. 문서로 컬렉션을 만들자 −

>db.demo185.insertOne({_id:101,details:{Name:"Chris",Score:78,Subjects:{"Name":"MySQL"}}});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo185.insertOne({_id:102,details:{Name:"Bob",Score:78}});
{ "acknowledged" : true, "insertedId" : 102 }
>db.demo185.insertOne({_id:103,details:{Name:"David",Score:78,Subjects:{"Name":"MongoDB"}}});
{ "acknowledged" : true, "insertedId" : 103 }

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo185.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : 101, "details" : { "Name" : "Chris", "Score" : 78, "Subjects" : { "Name" : "MySQL" } } }
{ "_id" : 102, "details" : { "Name" : "Bob", "Score" : 78 } }
{ "_id" : 103, "details" : { "Name" : "David", "Score" : 78, "Subjects" : { "Name" : "MongoDB" } } }

다음은 MongoDB에서 또는 연산자를 사용하는 쿼리입니다 -

> db.demo185.find({
...   "$or": [
...      { "details.Subjects.Name": { "$exists": true } },
...      { "details.Subjects.Name": { "$exists": true } }
...   ]
... })

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : 101, "details" : { "Name" : "Chris", "Score" : 78, "Subjects" : { "Name" : "MySQL" } } }
{ "_id" : 103, "details" : { "Name" : "David", "Score" : 78, "Subjects" : { "Name" : "MongoDB" } } }