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

문서를 가져오기 위한 하위 컬렉션에 대한 MongoDB "$and" 연산자?

<시간/>

문서를 가져오려면 MongoDB에서 $and 대신 $in을 사용하십시오. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.demo83.insertOne(
... {
...    "Details":[
...       {
...          "Name":"Chris",
...          "Subject":[
...             "MySQL",
...             "MongoDB"
...          ]
...       },
...       {
...          "Name":"David",
...          "Subject":[
...          "Java",
...          "C"
...          ]
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bfd2271bf0181ecc422a3")
}
> db.demo83.insertOne(
... {
...    "Details":[
...       {
...          "Name":"Bob",
...          "Subject":[
...          "C++",
...          "Python"
...          ]
...       },
...       {
...          "Name":"John",
...          "Subject":[
...             "Spring",
...             "Hibernate"
...          ]
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2bfd4571bf0181ecc422a4")
}

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

> db.demo83.find();

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

{
   "_id" : ObjectId("5e2bfd2271bf0181ecc422a3"), "Details" : [
      { "Name" : "Chris", "Subject" : [ "MySQL", "MongoDB" ] },
      { "Name" : "David", "Subject" : [ "Java", "C" ] }
   ]
}
{
   "_id" : ObjectId("5e2bfd4571bf0181ecc422a4"), "Details" : [
      { "Name" : "Bob", "Subject" : [ "C++", "Python" ] },
      { "Name" : "John", "Subject" : [ "Spring", "Hibernate" ] }
   ]
}

다음은 $in −

를 사용하여 문서를 찾는 쿼리입니다.
> db.demo83.find({ "Details" : { "$elemMatch" : {"Name" :"Chris" , "Subject":{"$in":["MongoDB"]}}}});

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

{
   "_id" : ObjectId("5e2bfd2271bf0181ecc422a3"), "Details" : [
      { "Name" : "Chris", "Subject" : [ "MySQL", "MongoDB" ] },
      { "Name" : "David", "Subject" : [ "Java", "C" ] }
   ] 
}