- Reference >
mongo
Shell Methods >- Collection Methods >
- db.collection.count()
db.collection.count()¶
On this page
Definition¶
-
db.collection.
count
(query)¶ Returns the count of documents that would match a
find()
query. Thedb.collection.count()
method does not perform thefind()
operation but instead counts and returns the number of results that match a query.The
db.collection.count()
method has the following parameter:Parameter Type Description query
document The query selection criteria. The
db.collection.count()
method is equivalent to thedb.collection.find(query).count()
construct.
See also
Behavior¶
Sharded Clusters¶
On a sharded cluster, db.collection.count()
can result in an inaccurate count if
orphaned documents exist or if a
chunk migration is in progress.
To avoid these situations, on a sharded cluster, use the
$group
stage of the db.collection.aggregate()
method to $sum
the documents. For example, the following
operation counts the documents in a collection:
To get a count of documents that match a query condition, include the
$match
stage as well:
See Perform a Count for an example.
Index Use¶
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.
Examples¶
Count all Documents in a Collection¶
To count the number of all documents in the orders
collection, use
the following operation:
This operation is equivalent to the following:
Count all Documents that Match a Query¶
Count the number of the documents in the orders
collection with the field ord_dt
greater than new
Date('01/01/2012')
:
The query is equivalent to the following: