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

MongoDB에서 $unwind 연산자는 무엇입니까?

<시간/>

MongoDB의 $unwind 연산자는 각 배열에 대해 동일하며 매핑 문서를 반환합니다. 다음은 MongoDB의 $unwind 연산자 데모입니다.

개념을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -

> db.unwindOperatorDemo.insertOne({"StudentName":"Larry","StudentAge":23,"StudentSubje
ct":["C","C++","Java","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef5f3559dd2396bcfbfc8")
}

find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -

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

다음은 출력입니다 -

{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : [
      "C",
      "C++",
      "Java",
      "MongoDB"
   ]
}

다음은 $unwind 연산자의 데모입니다. 쿼리는 다음과 같습니다 -

> db.unwindOperatorDemo.aggregate(
   ... { $project : {
      ... StudentName : 1 ,
      ... StudentAge: 1 ,
      ... StudentSubject : 1
   ... }},
   ... { $unwind : "$StudentSubject" }
... ).pretty();

다음은 출력입니다 -

{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "C"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "C++"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "Java"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "MongoDB"
}

샘플 출력을 보면 "StudentName" 및 "StudentAge" 필드가 각 "StudentSubject" 배열 필드에 매핑됩니다.