정의
행동
$setUnion은(는) 배열을 집합으로 처리하여 배열에 대한 설정하다 작업을 수행합니다. 배열 에 중복 항목이 포함된 경우 는 중복$setUnion $setUnion 항목을 무시합니다. 은(는) 요소의 순서를 무시합니다.
$setUnion 결과에서 중복 항목을 필터링하여 고유한 항목만 포함하는 배열을 출력합니다. 출력 배열의 요소 순서는 지정되지 않습니다.
설정하다 에 중첩된 배열 요소가 포함된 경우$setUnion 는 중첩된 배열 로 내려가지 않고 최상위 수준에서 배열 평가합니다.
예시 | 결과 | ||
|---|---|---|---|
| | ||
| |
참고
MongoDB 부터 5.2 의 정렬 순서는 정의되지 않습니다. 배열 정렬하려면 $setUnion 를 $sortArray 참조하세요.
예시
다음 문서가 포함된 flowers 컬렉션을 생각해 보세요.
db.flowers.insertMany( [ { "_id" : 1, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ "rose", "orchid" ] }, { "_id" : 2, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ "orchid", "rose", "orchid" ] }, { "_id" : 3, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ "rose", "orchid", "jasmine" ] }, { "_id" : 4, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ "jasmine", "rose" ] }, { "_id" : 5, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ ] }, { "_id" : 6, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ [ "rose" ], [ "orchid" ] ] }, { "_id" : 7, "flowerFieldA" : [ "rose", "orchid" ], "flowerFieldB" : [ [ "rose", "orchid" ] ] }, { "_id" : 8, "flowerFieldA" : [ ], "flowerFieldB" : [ ] }, { "_id" : 9, "flowerFieldA" : [ ], "flowerFieldB" : [ "rose" ] } ] )
다음 연산은$setUnion연산자 사용하여 flowerFieldA 배열 이나 flowerFieldB 배열 또는 둘 다에서 발견된 요소의 배열 반환합니다.
db.flowers.aggregate( [ { $project: { flowerFieldA:1, flowerFieldB: 1, allValues: { $setUnion: [ "$flowerFieldA", "$flowerFieldB" ] }, _id: 0 } } ] )
이 연산은 다음과 같은 결과를 반환합니다.
{ "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ "rose", "orchid" ], "allValues": [ "orchid", "rose" ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ "orchid", "rose", "orchid" ], "allValues": [ "orchid", "rose" ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ "rose", "orchid", "jasmine" ], "allValues": [ "orchid", "rose", "jasmine" ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ "jasmine", "rose" ], "allValues": [ "orchid", "rose", "jasmine" ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ ], "allValues": [ "orchid", "rose" ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ [ "rose" ], [ "orchid" ] ], "allValues": [ "orchid", "rose", [ "rose" ], [ "orchid" ] ] } { "flowerFieldA": [ "rose", "orchid" ], "flowerFieldB": [ [ "rose", "orchid" ] ], "allValues": [ "orchid", "rose", [ "rose", "orchid" ] ] } { "flowerFieldA": [ ], "flowerFieldB": [ ], "allValues": [ ] } { "flowerFieldA": [ ], "flowerFieldB": [ "rose" ], "allValues": [ "rose" ] }