- Reference >
mongoShell Methods >- Cursor Methods >
- cursor.min()
cursor.min()¶
On this page
Definition¶
-
cursor.min()¶ mongoShell MethodThis page documents the
mongoshell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.Specifies the inclusive lower bound for a specific index in order to constrain the results of
find().min()provides a way to specify lower bounds on compound key indexes.The
min()method has the following parameter:Parameter Type Description indexBoundsdocument The inclusive lower bound for the index keys. The
indexBoundsparameter has the following prototype form:
Index Use
Starting in MongoDB 4.2, you must explicitly specify the particular
index with the hint() method to run
min() with the following exception: you do not
need to hint if the find() query is an
equality condition on the _id field { _id: <value> }.
In previous versions, you could run min() with or
without explicitly hinting the index. If run without the hint in 4.0
and earlier, MongoDB selects the index using the fields in the
indexBounds; however, if multiple indexes exist on same fields
with different sort orders, the selection of the index may be
ambiguous.
See also
min() exists primarily to support the
mongos process, and is a shell wrapper around the
query modifier $min.
Deprecated since v3.2
Starting in v3.2, the $min operator is deprecated in the
mongo shell. In the mongo shell,
use cursor.min() instead.
Behaviors¶
Interaction with Index Selection¶
Because min() requires an index on a
field, and forces the query to use this index, you may prefer
the $gte 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¶
min() without max()¶
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¶
Starting in MongoDB 4.2, you must explicitly specify the particular
index with the hint() method to run
min() with the following exception: you do not
need to hint if the find() query is an
equality condition on the _id field { _id: <value> }.
For the examples below, create a sample collection named products that holds the
following documents:
Create the following indexes for the collection:
Using the ordering of the
{ item: 1, type: 1 }index,min()limits the query to the documents that are at or above the index key bound ofitemequal toappleandtypeequal tojonagold, as in the following:The query returns the following documents:
Using the ordering of the index
{ price: 1 },min()limits the query to the documents that are at or above the index key bound ofpriceequal to1.39andmax()limits the query to the documents that are below the index key bound ofpriceequal to1.99:Note
The query returns the following documents: