먼저 MongoDB에 오신 것을 환영합니다!
기억해야 할 점은 MongoDB는 데이터 저장소에 "NoSQL"접근 방식을 사용하므로 선택, 조인 등에 대한 생각이 마음에서 사라진다는 것입니다. 데이터를 저장하는 방식은 문서 및 컬렉션의 형태로 저장 위치에서 데이터를 추가하고 가져 오는 동적 수단을 허용합니다.
즉, $ unwind 매개 변수의 개념을 이해하려면 먼저 인용하려는 사용 사례가 무엇을 말하는지 이해해야합니다. mongodb.org 의 예제 문서 는 다음과 같습니다.
{
title : "this is my title" ,
author : "bob" ,
posted : new Date () ,
pageViews : 5 ,
tags : [ "fun" , "good" , "fun" ] ,
comments : [
{ author :"joe" , text : "this is cool" } ,
{ author :"sam" , text : "this is bad" }
],
other : { foo : 5 }
}
태그가 실제로 어떻게 3 개 항목의 배열인지 확인하십시오.이 경우에는 "재미", "좋음"및 "재미"입니다.
$ unwind가하는 일은 각 요소에 대한 문서를 떼어 내고 그 결과 문서를 반환하는 것입니다. 이를 고전적인 접근 방식으로 생각하면 "태그 배열의 각 항목에 대해 해당 항목 만있는 문서를 반환"과 동일합니다.
따라서 다음을 실행 한 결과 :
db.article.aggregate(
{ $project : {
author : 1 ,
title : 1 ,
tags : 1
}},
{ $unwind : "$tags" }
);
다음 문서를 반환합니다.
{
"result" : [
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "fun"
},
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "good"
},
{
"_id" : ObjectId("4e6e4ef557b77501a49233f6"),
"title" : "this is my title",
"author" : "bob",
"tags" : "fun"
}
],
"OK" : 1
}
결과 배열에서 변경되는 유일한 것은 tags 값에서 반환되는 것입니다. 작동 방식에 대한 추가 참조가 필요한 경우 여기 에 링크를 포함했습니다 . 이것이 도움이되기를 바라며, 지금까지 제가 접한 최고의 NoSQL 시스템 중 하나에 대한 귀하의 진출에 행운을 빕니다.