UNION 두 컬렉션에 대한 유사한 쿼리의 경우, Aggregate()와 함께 MongoDB에서 JOIN을 사용하십시오. 문서로 컬렉션을 만들자 −
> db.demo486.insertOne({_id:1,"금액":30,"아니요":4});{ "승인됨" :true, "insertedId" :1 }> db.demo486.insertOne({ _id:2,"Amount":40,"No":2});{ "acknowledged" :true, "insertedId" :2 }> db.demo486.insertOne({_id:3,"Amount":60," 아니요":6});{ "승인됨" :true, "insertedId" :3 }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo486.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" :1, "Amount" :30, "No" :4 }{ "_id" :2, "Amount" :40, "No" :2 }{ "_id" :3, "Amount" " :60, "아니오" :6 }
다음은 문서로 두 번째 컬렉션을 생성하는 쿼리입니다 -
> db.demo487.insertOne({_id:1,"가격":10,"아니요":4});{ "승인됨" :true, "insertedId" :1 }> db.demo487.insertOne({ _id:2,"가격":80,"아니요":9});{ "승인됨" :true, "insertedId" :2 }> db.demo487.insertOne({_id:3,"가격":20," 아니요":6});{ "승인됨" :true, "insertedId" :3 }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo487.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" :1, "가격" :10, "아니오" :4 }{ "_id" :2, "가격" :80, "아니오" :9 }{ "_id" :3, "가격" " :20, "아니오" :6 }
다음은 MongoDB에서 UNION 두 쿼리에 대한 쿼리입니다 -
> db.getCollection('demo486').aggregate([... {$lookup :{ from :"demo487",localField :"아니요", foreignField :"아니요", as:"demo487"}}, ... {$unwind :"$demo487"},... {... $group :{... _id :{... 아니요 :"$No",... },... TotalValue :{ $sum :{ $add:[ "$Amount", "$demo487.Price" ] }}... }... },... {$sort :{"_id.No":1}}, ... {... $project :{... 아니요 :"$_id.No",... TotalValue :1,... _id :0... }... }... ])사전>이것은 다음과 같은 출력을 생성합니다 -
{ "총 가치":40, "아니요":4 }{ "총 가치":80, "아니요":6 }