对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

查询谓词中的类型范围

类型包围是MongoDB应用于查询谓词的隐式过滤:给定BSON类型的比较仅匹配该类型的值。示例,{ a: { $gt: 0 } } 表示“a 是数字,a 大于 0”。

不等式操作符($gt、$gte、$lt 和 $lte)使用类型括号。

否定词( $ne 和 $nin )不使用类型括号。它们匹配任何类型的值。示例,除了比较中的数字类型之外,{ a: { $ne: 2 } } 还匹配 a 为字符串或对象的文档。

BSON有几种数字类型:int、long、double 和 decimal。 MongoDB将它们视为等效值进行比较,因此针对数字的比较会匹配任何数字类型的值。

示例,{ a: { $gt: 0 } } 匹配 int、long、double 或 decimal 类型的 a 值。

当比较隐式遍历大量时,类型括号也适用。如果目标字段是大量,则比较匹配至少有一个元素满足比较且与操作数类型相同的文档。

示例,{ 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 返回 qty 值大于 4 值的文档:

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。