AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$setUnion(式)

$setUnion

2 つ以上の配列を受け取り、任意の入力配列に現れる一意の要素を含む 1 つの配列を返します。

注意

曖昧さ回避

このページでは、2$setUnion つ以上の配列を一意の要素の 1 つの配列に結合する式として使用する場合、 について説明します。

次の他のコンテキストでは $setUnion を使用することもできます。

{
$setUnion: [ <expression1>, <expression2>, ... ]
}

$setUnion 配列をセットとして扱い、配列に対してセット操作を実行します。配列に重複するエントリが含まれている場合、$setUnion は重複するエントリを無視します。 $setUnion は要素の順序を無視します。

$setUnion は結果内の重複を除外して、一意のエントリのみを含む配列を出力します。出力配列内の要素の順序は指定されていません。

引数は、それぞれが配列に変換される限り、どのような有効な式でも使用できます。 式の詳細については、「式 」を参照してください。

セットにネストされた配列要素が含まれている場合、$setUnion はネストされた配列に下降 せず 、最上位の配列を評価します。

次の表は、さまざまな入力に対して $setUnion が返す結果を示しています。

例
結果
ノート
{ $setUnion: [
[ "a", "c" ],
[ "a", "b" ]
] }
[ "a", "c", "b" ]

両方の配列のすべての要素が結合され、重複する要素が削除されます。

{ $setUnion: [
[ "a", "c" ],
[ "a", "b", "c" ]
] }
[ "a", "c", "b" ]

両方の配列のすべての要素が結合され、重複する要素が削除されます。

{ $setUnion: [
[ "a", "b", "a" ],
[ "b", "a" ]
] }
[ "a", "b" ]

両方の配列のすべての要素が結合され、重複する要素が削除されます。

{ $setUnion: [
[ "a", "b" ],
[ [ "a", "b" ] ]
] }
[ "a", "b", [ "a", "b" ] ]

結果には、個々の string 要素として "a" と "b" と、一意の要素として配列 [ "a", "b" ] が含まれます。

{ $setUnion: [
[ ],
[ "a", "b" ]
] }
[ "a", "b" ]

最初の配列が空であるため、結果は 2 番目の配列の一意の要素で構成されています。

{ $setUnion: [
[ "a", "a" ],
[ "a", "b" ]
] }
[ "a", "b" ]

両方の配列のすべての要素が結合され、重複する要素が削除されます。

このページの例では、 sample_mflix データセット のデータを使用します。このデータセットを自己管理型MongoDBデプロイにロードする 方法の詳細については、「 サンプル データセットをロードする 」を参照してください。サンプルデータベースに変更を加えた場合、このページの例を実行するには、データベースを削除して再作成する必要がある場合があります。

この例では、$setUnion を使用して、cast 配列と directors 配列を各映画にクレジットされた人物の単一の配列に結合します。

db.movies.aggregate( [
{
$match: { title: { $in: [ "Annie Hall", "Reservoir Dogs" ] } }
},
{
$project: {
_id: 0,
title: 1,
cast: 1,
directors: 1,
keyContributors: { $setUnion: [ "$cast", "$directors" ] }
}
},
{
$sort: { title: 1 }
}
] )

先行するパイプライン:

  • $match2 つの映画をフィルタリングするには、 を使用します。

  • を と併用して、$project $setUnioncastとdirectorskeyContributors を フィールドに結合します。

  • $sort結果をtitle で並べ替えるには、 を使用します。

Annie Hall の場合、Wuby Atlas は cast と directors の両方に表示されますが、keyContributors には 1 回だけ表示されます。これは、$setUnion が重複要素を削除するためです。

  • $setUnion は、配列と配列に解決される式のみをサポートします。
このページを評価