On this page
cursor.count()
On this page
Definition
cursor.
count
( )-
Counts the number of documents referenced by a cursor. Append the
count()
method to afind()
query to return the number of matching documents. The operation does not perform the query but instead counts the results that would be returned by the query.Changed in version 2.6: MongoDB supports the use of
hint()
withcount()
. See Specify the Index to Use for an example.The
count()
method has the following prototype form:db.collection.find(<query>).count()
The
count()
method has the following parameter:Parameter Type Description applySkipLimit
boolean Optional. Specifies whether to consider the effects of the cursor.skip()
andcursor.limit()
methods in the count. By default, thecount()
method ignores the effects of thecursor.skip()
andcursor.limit()
. SetapplySkipLimit
totrue
to consider the effect of these methods.MongoDB also provides an equivalent
db.collection.count()
as an alternative to thedb.collection.find(<query>).count()
construct.See also
Behavior
Index Use
Consider a collection with the following index:
{ a: 1, b: 1 }
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:
db.collection.find( { a: 5, b: 5 } ).count()
db.collection.find( { a: { $gt: 5 } } ).count()
db.collection.find( { a: 5, b: { $gt: 10 } } ).count()
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.
db.collection.find( { a: 5, b: { $in: [ 1, 2, 3 ] } } ).count()
db.collection.find( { a: { $gt: 5 }, b: 5 } ).count()
db.collection.find( { a: 5, b: 5, c: 5 } ).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
The following are examples of the count()
method.
Count All Documents
The following operation counts the number of all documents in the orders
collection:
db.orders.find().count()
Count Documents That Match a Query
The following operation counts the number of the documents in the orders
collection with the field ord_dt
greater than new Date('01/01/2012')
:
db.orders.find( { ord_dt: { $gt: new Date('01/01/2012') } } ).count()
Limit Documents in Count
The following operation counts the number of the documents in the orders
collection with the field ord_dt
greater than new Date('01/01/2012')
taking into account the effect of the limit(5)
:
db.orders.find( { ord_dt: { $gt: new Date('01/01/2012') } } ).limit(5).count(true)
Specify the Index to Use
The following operation uses the index named "status_1"
, which has the index key specification of { status: 1 }
, to return a count of the documents in the orders
collection with the field ord_dt
greater than new Date('01/01/2012')
and the status
field is equal to "D"
:
db.orders.find(
{ ord_dt: { $gt: new Date('01/01/2012') }, status: "D" }
).hint( "status_1" ).count()