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" 배열 필드에 매핑됩니다.