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

MongoDB의 단일 컬렉션에 있는 문서 간에 집합 교차를 수행하는 방법은 무엇입니까?

<시간/>

이를 위해 $setIntersection을 사용할 수 있습니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.setInterSectionDemo.insertOne(... {"_id":101, "Value1":[55,67,89]}... );{ "승인됨" :true, "insertedId" :101 }> db.setInterSectionDemo.insertOne(... {"_id":102, "Value2":[90,45,55]}... );{ "승인됨" :true, "insertedId" :102 }> db. setInterSectionDemo.insertOne(... {"_id":103, "Value3":[92,67,45]}... );{ "승인됨" :true, "insertedId" :103 }

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

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

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" :101, "값1" :[ 55, 67, 89 ] }{ "_id" :102, "값2" :[ 90, 45, 55 ] }{ "_id" :103, "값3 " :[ 92, 67, 45 ]

다음은 MongoDB의 단일 컬렉션에 있는 문서 간의 집합 교차를 찾는 쿼리입니다. -

> db.setInterSectionDemo.aggregate([... {... "$match":{... "_id":{ "$in":[101, 103] }... }... },... {... "$group":{... "_id":0,... "firstValue":{ "$first":"$Value1" },... "secondValue":{ "$last":"$Value3" }... }... },... {... "$project":{... "firstValue":1,... "secondValue":1 ,... "공통값":{ "$setIntersection":[ "$firstValue", "$secondValue" ] },... "_id":0... }... }... ]); 

이것은 다음과 같은 출력을 생성합니다 -

{ "firstValue" :[ 55, 67, 89 ], "secondValue" :[ 92, 67, 45 ], "CommonValue" :[ 67 ] }