参考 > 参考 > mongo Shell方法 > 游标方法 > cursor.max()
cursor.
max
()¶mongo
壳法
此页面记录了mongo
shell方法,并且
没有引用MongoDB Node.js驱动程序(或任何其他驱动程序)方法。对于相应的MongoDB驱动程序API,请改为参考您特定的
MongoDB驱动程序文档。
该max()
方法具有以下参数:
参数 | 类型 | 描述 |
---|---|---|
indexBounds |
文献 | 索引键的排他上限。 |
该indexBounds
参数具有以下原型形式:
这些字段按顺序对应于特定索引的所有键。
索引用途
从MongoDB 4.2开始,您必须使用hint()
要运行的方法
显式指定特定的索引,但max()
有以下例外情况:您不需要find()
在_id
字段上提示查询是否为相等条件。{ _id: <value> }
在以前的版本中,max()
无论查询条件如何,都可以在有或没有显式提示索引的情况下运行。如果在4.0及更早版本中没有提示运行,MongoDB将使用indexBounds
;中的字段选择索引。但是,如果多个索引存在于具有不同排序顺序的相同字段上,则索引的选择可能会模棱两可。
也可以看看
max()
存在主要是为了支持
mongos
(分片)过程,并且是围绕查询修饰符的外壳包装$max
。
从v3.2开始不推荐使用
从v3.2开始,shell中$max
不推荐使用该运算符
mongo
。在mongo
外壳中,cursor.max()
改用。
因为max()
在字段上需要一个索引,并强制查询使用该索引,所以如果可能,您可能更喜欢$lt
查询的
运算符。考虑以下示例:
该查询将使用price
字段上的索引,即使索引_id
可能更好。
max()
没有min()
¶在min
与max
运营商表明,该系统应避免在正常的查询计划。相反,他们构建一个索引扫描,其中指标界限明确给出的数值规定
min
和max
。
警告
如果未指定两个边界之一,则查询计划将是一侧无边界的索引扫描。与不包含任何运算符或使用两个运算符来更严格地限制索引扫描的查询相比,这可能会降低性能。