AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

クエリ述語での型のブラケット処理

型のブラケット処理は 、 MongoDB がクエリ述語に適用する暗黙的なフィルターです。特定のBSON型で比較すると、その型の値のみと一致します。例、{ a: { $gt: 0 } } は "a が数値で、 aが"0 より大きいことを意味します。

非等価演算子($gt 、$gte 、 、$lt $lte)は、型のブラケット処理を使用します。

除外($ne と$nin )では、型の括弧は使用されません。これらは任意の型の値と一致します。例、{ a: { $ne: 2 } } は、比較の数値型に加えて、a が string またはオブジェクトであるドキュメントにも一致します。

BSON にはいくつかの数値型があります。int、long、double、decimal 。 MongoDB、これらを比較のために同等と見なすため、数値との比較は任意の数値型の値と一致します。

例、{ a: { $gt: 0 } } は、int、long、double、または decimal タイプの a 値と一致します。

型のブラケット処理は、比較が配列を暗黙的に走査する場合にも適用されます。ターゲットフィールドが配列の場合、比較は少なくとも 1 つの要素が比較を満たし、オペランドと同じ型であるドキュメントと一致します。

例、{ a: { $gt: 3 } } は { a: [ 1, 2, 3, 4 ] } と { a: [ "red", 4, "blue" ] } と一致しますが、{ a: [ "red", "blue" ] } とは一致しません。

次のコレクションについて考えてみます。

{ "_id": "apples", "qty": 5 }
{ "_id": "bananas", "qty": 7 }
{ "_id": "apricots", "qty": 3 }
{ "_id": "oranges", "qty": { "in stock": 8, "ordered": 12 } }
{ "_id": "avocados", "qty": "fourteen" }

次のクエリは、 $gtを使用して、 の値がqty4 より大きいドキュメントを返します。

db.inventory.find( { qty: { $gt: 4 } } )
[
{
_id: 'apples',
qty: 5
},
{
_id: 'bananas',
qty: 7
}
]

_id が "apricots" に等しいドキュメントは、その qty 値である 3 が 4 より大きくないため、返されません。

_id が "avocados" と等しいドキュメントは、その qty 値が string 型であり、$gt オペランドが型 integer であるため、返されません。

_id が "oranges" と等しいドキュメントは、qty 値が object 型であるため、返されません。

Tip

コレクション内のデータ型を強制するには 、スキーマ検証 を使用します。