WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

MongoDB · Basic · question 12 of 100

What is the difference between the findOne() and find() methods in MongoDB?

📕 Buy this interview preparation book: 100 MongoDB questions & answers — PDF + EPUB for $5

In MongoDB, ‘findOne()‘ and ‘find()‘ are both methods available for querying database collections but they have different use cases and return different results.

‘findOne()‘ returns one document that matches the query criteria while ‘find()‘ returns a cursor that can be used to iterate over all the documents that match the query criteria.

Here is a more detailed explanation of each method:

### findOne()

The ‘findOne()‘ method returns the first document that matches the query criteria. If there are multiple matching documents, it will only return the first one in natural order. The general syntax of ‘findOne()‘ method is as follows:

db.collection.findOne(query, projection)

where ‘query‘ specifies the search criteria and ‘projection‘ specifies the fields to be returned. The ‘projection‘ parameter is optional and can be omitted.

Example:

Let’s say we have a ‘users‘ collection with the following documents:

{ "_id" : ObjectId("60d59df73a194d1f78e27720"), "name" : "John", "age" : 30 }
{ "_id" : ObjectId("60d59e413a194d1f78e27721"), "name" : "Jane", "age" : 25 }
{ "_id" : ObjectId("60d59e4c3a194d1f78e27722"), "name" : "Bob", "age" : 35 }

If we run the following code:

db.users.findOne({name: "John"})

It will return the following result:

{ "_id" : ObjectId("60d59df73a194d1f78e27720"), "name" : "John", "age" : 30 }

### find()

The ‘find()‘ method returns all documents that match the query criteria. The general syntax of ‘find()‘ method is as follows:

db.collection.find(query, projection)

where ‘query‘ specifies the search criteria and ‘projection‘ specifies the fields to be returned. The ‘projection‘ parameter is optional and can be omitted.

Example:

Using the same ‘users‘ collection, if we run the following code:

db.users.find({age: {$gt: 25}})

It will return the following result:

{ "_id" : ObjectId("60d59df73a194d1f78e27720"), "name" : "John", "age" : 30 }
{ "_id" : ObjectId("60d59e4c3a194d1f78e27722"), "name" : "Bob", "age" : 35 }

Note that this returned all documents that have their age greater than 25.

In conclusion, ‘findOne()‘ returns a single document while ‘find()‘ returns a cursor that can be used to iterate over multiple documents. Use ‘findOne()‘ when you only need to access a single document and use ‘find()‘ when you need to access multiple documents.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic MongoDB interview — then scores it.
📞 Practice MongoDB — free 15 min
📕 Buy this interview preparation book: 100 MongoDB questions & answers — PDF + EPUB for $5

All 100 MongoDB questions · All topics