Bird
Raised Fist0
MongoDBquery~5 mins

countDocuments method in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the countDocuments() method do in MongoDB?
It counts the number of documents in a collection that match a given filter or query.
Click to reveal answer
beginner
How do you count all documents in a collection using countDocuments()?
Call countDocuments({}) with an empty filter object to count all documents.
Click to reveal answer
intermediate
What is the difference between count() and countDocuments() in MongoDB?
countDocuments() counts documents matching a filter accurately, while count() is deprecated and less precise with some query types.
Click to reveal answer
beginner
Write a simple example to count documents where the field status equals "active".
db.collection.countDocuments({ status: "active" })
Click to reveal answer
intermediate
Can countDocuments() be used with complex filters like ranges or logical operators?
Yes, you can use any valid MongoDB query filter with countDocuments(), including ranges, $and, $or, and others.
Click to reveal answer
What does countDocuments({}) return?
AThe number of fields in a document
BThe number of collections in the database
CThe total number of documents in the collection
DThe size of the database in bytes
Which method is recommended for counting documents in MongoDB?
AcountDocuments()
Bcount()
Cfind()
Daggregate()
What type of argument does countDocuments() accept?
AA query filter object
BA string with collection name
CA number representing limit
DNo arguments allowed
If you want to count documents where age is greater than 30, which filter is correct?
A{ age: 30 }
B{ age: { $gt: 30 } }
C{ age: { $lt: 30 } }
D{ age: { $eq: 30 } }
What does countDocuments({ status: "active" }) return?
ANumber of documents with any status
BNumber of fields named 'status'
CNumber of collections named 'active'
DNumber of documents with status 'active'
Explain how to use the countDocuments() method to find the number of documents matching a condition.
Think about how you tell MongoDB what to count.
You got /4 concepts.
    Describe the difference between countDocuments() and the deprecated count() method.
    Focus on why one is preferred over the other.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the countDocuments method do in MongoDB?

      easy
      A. Counts how many documents match a given filter
      B. Deletes documents matching a filter
      C. Updates documents matching a filter
      D. Returns all documents in a collection

      Solution

      1. Step 1: Understand the purpose of countDocuments

        The countDocuments method is used to count documents that match a filter in a collection.
      2. Step 2: Compare with other operations

        Deleting, updating, or returning documents are different operations and not related to counting.
      3. Final Answer:

        Counts how many documents match a given filter -> Option A
      4. Quick Check:

        countDocuments = count matching documents [OK]
      Hint: Remember: countDocuments counts, not modifies data [OK]
      Common Mistakes:
      • Confusing countDocuments with delete or update methods
      • Thinking it returns the documents instead of a count
      • Assuming it counts all documents without a filter
      2.

      Which of the following is the correct syntax to count documents with status equal to "active" in a collection named users?

      ?
      easy
      A. db.users.countDocuments({ status: "active" })
      B. db.users.count({ status: active })
      C. db.users.find({ status: "active" }).countDocuments({ status: "active" })
      D. db.users.countDocuments("status = active")

      Solution

      1. Step 1: Identify correct method usage

        The countDocuments method is called on the collection with a filter object inside parentheses.
      2. Step 2: Check filter format

        The filter must be an object like { status: "active" }, not a string or chained after find().
      3. Final Answer:

        db.users.countDocuments({ status: "active" }) -> Option A
      4. Quick Check:

        Correct syntax uses countDocuments(filter) [OK]
      Hint: Use countDocuments with a filter object inside parentheses [OK]
      Common Mistakes:
      • Using deprecated count() method
      • Passing filter as a string instead of object
      • Calling countDocuments after find()
      3.

      Given the collection orders with documents:

      [{ "status": "shipped" }, { "status": "pending" }, { "status": "shipped" }]

      What will db.orders.countDocuments({ status: "shipped" }) return?

      medium
      A. 1
      B. 0
      C. 2
      D. 3

      Solution

      1. Step 1: Identify documents matching the filter

        Documents with status: "shipped" are the first and third documents.
      2. Step 2: Count matching documents

        There are 2 such documents in total.
      3. Final Answer:

        2 -> Option C
      4. Quick Check:

        Count of shipped orders = 2 [OK]
      Hint: Count documents matching filter exactly [OK]
      Common Mistakes:
      • Counting all documents instead of filtered ones
      • Misreading the status values
      • Assuming countDocuments returns documents, not count
      4.

      What is wrong with this code snippet?

      const count = db.products.countDocuments("category: 'books'");

      It aims to count documents where category is "books".

      medium
      A. Missing await keyword for asynchronous call
      B. The filter is passed as a string instead of an object
      C. countDocuments cannot be used on the products collection
      D. The method name should be count, not countDocuments

      Solution

      1. Step 1: Check filter argument type

        The filter must be an object like { category: 'books' }, not a string.
      2. Step 2: Confirm method usage

        countDocuments is valid on collections and accepts an object filter.
      3. Final Answer:

        The filter is passed as a string instead of an object -> Option B
      4. Quick Check:

        Filter must be an object, not a string [OK]
      Hint: Filters are objects, not strings in countDocuments [OK]
      Common Mistakes:
      • Passing filter as a string
      • Confusing countDocuments with count
      • Ignoring async/await in some environments (not always error)
      5.

      You want to count how many users have either age greater than 30 or status equal to "active". Which query correctly uses countDocuments to do this?

      hard
      A. db.users.countDocuments({ age > 30 || status == "active" })
      B. db.users.countDocuments({ age: { $gt: 30 }, status: "active" })
      C. db.users.countDocuments({ $and: [ { age: { $gt: 30 } }, { status: "active" } ] })
      D. db.users.countDocuments({ $or: [ { age: { $gt: 30 } }, { status: "active" } ] })

      Solution

      1. Step 1: Understand the filter logic

        We want documents where age is greater than 30 OR status is "active".
      2. Step 2: Use correct MongoDB query syntax

        The $or operator takes an array of conditions to match either one.
      3. Step 3: Check each option

        The option using { $or: [ { age: { $gt: 30 } }, { status: "active" } ] } is correct. The option with comma-separated conditions uses implicit AND, the one with $and uses explicit AND, and the last uses invalid syntax.
      4. Final Answer:

        db.users.countDocuments({ $or: [ { age: { $gt: 30 } }, { status: "active" } ] }) -> Option D
      5. Quick Check:

        Use $or with array for OR conditions [OK]
      Hint: Use $or with array for OR conditions in filters [OK]
      Common Mistakes:
      • Using implicit AND instead of OR
      • Writing invalid filter syntax
      • Confusing $and and $or operators