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

MongoDB 임베디드 문서에서 특정 요소를 찾는 방법은 무엇입니까?

<시간/>

특정 요소를 찾으려면 MongoDB에서 $project를 사용하십시오. 문서로 컬렉션을 만들자 −

> db.demo744.insertOne(
...    {
...       studentInformation:
...       [
...          {
...             studentName:"Robert",
...             grade:"A"
...          },
...          {
...             studentName:"Bob",
...             grade:"C"
...          },
...          {
...             studentName:"John",
...             grade:"B"
...          },
...          {
...             studentName:"Sam",
...             grade:"A"
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ead928a57bb72a10bcf0684")
}

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

> db.demo744.find();

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

{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : [ { "studentName" : "Robert", "grade" : "A" }, { "studentName" : "Bob", "grade" : "C" }, { "studentName" : "John", "grade" : "B" }, { "studentName" : "Sam", "grade" : "A" } ] }

다음은 포함된 문서에서 특정 요소를 찾는 쿼리입니다 -

> db.demo744.aggregate(
...    { $unwind: '$studentInformation' },
...    { $match: {'studentInformation.grade':"A"}},
...    { $project: {"studentInformation.studentName": 1}}
... )

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

{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : { "studentName" : "Robert" } }
{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : { "studentName" : "Sam" } }