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

MongoDB에서 객체 배열을 검색할 수 있습니까?

<시간/>

예, 개체 배열을 검색하려면 MongoDB 집계()에서 $unwind를 사용합니다. 일치시키려면 $match를 사용하십시오. 문서로 컬렉션을 만들자 −

> db.demo623.insertOne(
...    {
...       _id:1,
...       details:[
...          {
...             Name:"Chris"
...          },
...          {
...             DueDate:new ISODate("2020-01-10")
...          },
...          {
...             CountryName:"US"
...          }
...       ]
...    }
... );
{ "acknowledged" : true, "insertedId" : 1 }

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

> db.demo623.find().pretty();

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

{
   "_id" : 1,
   "details" : [
      {
         "Name" : "Chris"
      },
      {
         "DueDate" : ISODate("2020-01-10T00:00:00Z")
      },
      {
         "CountryName" : "US"
      }
   ]
}

다음은 MongoDB에서 객체 배열을 검색하는 쿼리입니다 -

> db.demo623.aggregate({$unwind: "$details"},
... {$match: {"details.Name":"Chris"}},
... {$project: {"details.Name": 1}})

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

{ "_id" : 1, "details" : { "Name" : "Chris" } }