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

MongoDB를 사용하여 MySQL Union과 유사한 쿼리를 구현하시겠습니까?


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 }