$anyElementTrue (いずれかの要素が真かを確認)
最終更新:2026-10-09
$anyElementTrue (いずれかの要素が真かを確認)
$anyElementTrue は、配列の少なくとも 1 つの要素が真のとき true を返します。空の配列は false を返します。代表的な用途は、ユーザーに配送先住所が 1 つでもあるか、注文に有効な割引が 1 つでもあるかのチェックです。$allElementsTrue の対で、いずれかの要素が真なら true になります。真偽の規則も同じです(0、空文字列、null、false は偽)。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $anyElementTrue: [ <array> ] }
⚙️ パラメータ
| 配列 | チェックする配列。 |
|---|
戻り値:いずれかの要素が真の場合は true。空の配列は false を返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $anyElementTrue: VIP フラグが 1 つでも立っているか
db.users.aggregate([
{ $project: {
isVip: { $anyElementTrue: ['$vipFlags'] }
} }
])
出力:
{ '_id': 1, 'isVip': true }
{ '_id': 2, 'isVip': false }
📌 注意事項
- 空の配列は false を返す
- $allElementsTrue と組み合わせれば、全要素/いずれかの要素の完全なロジックになる
- 偽になる値は 0、''、null、false
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q空の配列は何を返しますか?
Afalse です。$allElementsTrue の逆です。
Q$allElementsTrue との関係は?
A対の関係です。一方はいずれかの要素が真なら true、もう一方はすべて真のときだけ true です。
Qブールフィールドの配列を渡せますか?
Aブール配列なら可能です。オブジェクト配列の場合は先に $map でフィールドを抽出します。