count( query, options )
Returns the count of documents that would match a
find()query for the collection or view. The
db.collection.count()method does not perform the
find()operation but instead counts and returns the number of results that match a query.
Parameter Type Description
document The query selection criteria.
document Optional. Extra options for modifying the count.
optionsdocument contains the following fields:
Field Type Description
integer Optional. The maximum number of documents to count.
integer Optional. The number of documents to skip before counting.
string or document
Optional. An index name hint or specification for the query.
New in version 2.6.
integer Optional. The maximum amount of time to allow the query to run.
Starting in MongoDB 3.6, support for read concern
"majority"is enabled by default. For MongoDB 3.6.1 - 3.6.x, you can disable read concern
"majority". For more information, see Disable Read Concern Majority.
New in version 3.2.
count()is equivalent to the
Consider a collection with the following index:
When performing a count, MongoDB can return the count using only the index if:
- the query can use an index,
- the query only contains conditions on the keys of the index, and
- the query predicates access a single contiguous range of index keys.
For example, the following operations can return the count using only the index:
If, however, the query can use an index but the query predicates do not access a single contiguous range of index keys or the query also contains conditions on fields outside the index, then in addition to using the index, MongoDB must also read the documents to return the count.
In such cases, during the initial read of the documents, MongoDB pages the documents into memory such that subsequent calls of the same count operation will have better performance.
The amount of drift depends on the number of insert, update, or delete operations performed between the last checkpoint and the unclean shutdown. Checkpoints usually occur every 60 seconds. However,
mongod instances running with non-default
--syncdelay settings may have more or less frequent checkpoints.
This loss of accuracy only applies to
count() operations that do not include a query predicate.
To count the number of all documents in the
orders collection, use the following operation:
This operation is equivalent to the following: