$setEquals (集合の等価性を確認)

最終更新:2026-10-09

$setEquals (集合の等価性を確認)

$setEquals は、2 つ以上の配列が集合として等しいかを、順序と重複を無視して判定します。代表的な用途は、2 つの権限リストが一致するかの確認や、設定と既定値の比較です。複数の引数を受け付け、すべての配列が集合として等しいときだけ true を返します。null 要素は無視されるため、null を含む配列は null がないものとして比較されます。順序は関係ありません。[1, 2] と [2, 1] は等しいと判定されます。

カテゴリ集合・条件・変換
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $setEquals: [ <array1>, <array2>, ... ] }

⚙️ パラメータ

配列比較する少なくとも2つの配列。

戻り値:すべての配列が集合として等しい場合は true、それ以外は false

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $setEquals: 2 つの権限リストが一致するか
db.roles.aggregate([
  { $project: {
      samePerms: { $setEquals: ['$userPerms', '$defaultPerms'] }
  } }
])

出力:

{ '_id': 1, 'samePerms': true }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q順序は結果に影響しますか?
Aいいえ — 集合比較では順序は無視されます。
Qいくつの引数に対応していますか?
A2 つ以上です。すべてが集合として等しいときだけ true になります。
Qnull を含む配列は?
Anull 要素は無視されるため、含まないバージョンと同じ結果になります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%