- Reference >
mongoShell Methods >- Cursor Methods >
- cursor.max()
cursor.max()¶
On this page
Definition¶
-
cursor.max()¶ Specifies the exclusive upper bound for a specific index in order to constrain the results of
find().max()provides a way to specify an upper bound on compound key indexes.The
max()method has the following parameter:Parameter Type Description indexBoundsdocument The exclusive upper bound for the index keys. The
indexBoundsparameter has the following prototype form:The fields correspond to all the keys of a particular index in order. You can explicitly specify the particular index with the
hint()method. Otherwise,mongodselects the index using the fields in theindexBounds; however, if multiple indexes exist on same fields with different sort orders, the selection of the index may be ambiguous.See also
max()exists primarily to support themongos(sharding) process, and is a shell wrapper around the query modifier$max.Note
- Deprecated in the
mongoShell since v3.2 - Starting in v3.2, the
$maxoperator is deprecated in themongoshell. In themongoshell, usecursor.max()instead.
- Deprecated in the
Behavior¶
Interaction with Index Selection¶
Because max() requires an index on a field,
and forces the query to use this index, you may prefer the
$lt operator for the query if possible. Consider the
following example:
The query will use the index on the price field, even if
the index on _id may be better.
Index Bounds¶
max() without min()¶
The min and max operators indicate that the system
should avoid normal query planning. Instead they construct an index scan where
the index bounds are explicitly specified by the values given in
min and max.
Warning
If one of the two boundaries is not specified, the query plan will be an index scan that is unbounded on one side. This may degrade performance compared to a query containing neither operator, or one that uses both operators to more tightly constrain the index scan.
Example¶
This example assumes a collection named products that holds the
following documents:
The collection has the following indexes:
Using the ordering of
{ item: 1, type: 1 }index,max()limits the query to the documents that are below the bound ofitemequal toappleandtypeequal tojonagold:The query returns the following documents:
If the query did not explicitly specify the index with the
hint()method, it is ambiguous as to whethermongodwould select the{ item: 1, type: 1 }index ordering or the{ item: 1, type: -1 }index ordering.Using the ordering of the index
{ price: 1 },max()limits the query to the documents that are below the index key bound ofpriceequal to1.99andmin()limits the query to the documents that are at or above the index key bound ofpriceequal to1.39:Note
The query returns the following documents: