$allElementsTrue (全要素が真かを確認)
最終更新:2026-10-09
$allElementsTrue (全要素が真かを確認)
$allElementsTrue は配列のすべての要素が真のときだけ true を返します。空の配列は、全称量化の慣例に従って true を返します。代表的な用途は、注文の全アイテムが在庫にあることの確認や、ユーザーが必要なオプションをすべて選択したかのチェックです。引数は 1 つの配列で、要素は MongoDB の真偽規則に従います。0、空文字列、null、false は偽で、それ以外は真です。$anyElementTrue の対になる演算子です。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $allElementsTrue: [ <array> ] }
⚙️ パラメータ
| 配列 | チェックする配列。要素は真偽で判定されます。 |
|---|
戻り値:すべての要素が真の場合は true。空の配列は true を返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $allElementsTrue: 全アイテムが在庫にあるか確認
db.orders.aggregate([
{ $project: {
allInStock: { $allElementsTrue: ['$inStockFlags'] }
} }
])
出力:
{ '_id': 1, 'allInStock': true }
{ '_id': 2, 'allInStock': false }
📌 注意事項
- 空の配列は直感に反して true を返す。空の検出には $size と組み合わせる
- 偽になる値は 0、''、null、false。それ以外はすべて真
- 配列のみを受け付ける。配列以外はエラー
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q空の配列は何を返しますか?
A全称量化により true を返します。空の判定には $size を使ってください。
Qどの値が偽になりますか?
A0、空文字列、null、false です。文字列 '0' を含むそれ以外はすべて真です。
Qオブジェクト配列のフィールドを確認できますか?
A先に $map でフィールドをブール配列に抽出してから渡してください。