We can use NodeJS with SQL and NoSQL databases like MySQL and MongoDB both alike. On that note, in this article, we will look at how to find a document by its ID using MongoDB and the Mongoose library. The Mongoose library is an object document mapper that allows us to define objects with a strongly typed schema that can be mapped to a MongoDB document. It also provides certain functions for CRUD activities. Thus, now let us look at the findByID MongoDB function.
Why do we use MongoDB? Read this to know !! ~~> ~~>
The findByID() function ~~> ~~>
The findById() function is used to find a single document based on its _id field. The _id field is cast based on the schema before the command is sent:
- Open the install mongoose module link.
- Install the mongoose module using:
npm install mongoose
- After that, you can simply create a folder and add a file, for example index.js. You can run that by:
node index.js

const mongoose = require('mongoose'); // Database connection mongoose.connect('mongodb://127.0.10.1:20021/MUniv', { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }); // User model const User = mongoose.model('User', { fname: { type: String }, age: { type: Number } }); // Finding a document whose id = 5d715a23c452f34e335d2d8d var id = '5d715a23c452f34e335d2d8d'; User.findById(id, function (err, docs) { if (err){ console.log(err); } else{ console.log("Result : ", docs); } });
How to execute the program?
- Make sure you have installed the mongoose module with the following command:
npm install mongoose
- Below you will see the sample data in the database before running the function. I have used the Robo3T GUI tool as shown below:
- Run the index.js file with the following command:
node index.js
Want to check the version of your MongoDB application? Here’s how it is done~>
findByID MongoDB and Mongoose ~~> ~~>
As the name suggests, the findByID method is used to find documents by specifying a particular ID. By ID, we mean the automatically created _id field when a document is created. The _id field is a unique value. So, it is possible to use the value of _id to find the document.

We have a details collection with three documents:
{ "_id" : ObjectId("5d71522ab352f78f435d2d8b"), "fname" : "Shubham", "age" : 22, "place" : "Delhi" } { "_id" : ObjectId("5d715223c476f78e335d2d8c"), "fname" : "Kavin", "age" : 27, "place" : "Bijnor" } { "_id" : ObjectId("5d715a23c452f34e335d2d8d"), "fname" : "Ayush", "age" : 29, "place" : "Jaipur" }
If we want to use the findByID function in Mongoose, we need to pass the ID of a specific document. So, now let us see how to make use of the findByID function to retrieve the first document in the details collection.
Details.findById(ObjectId("5d71522ab352f78f435d2d8b")) .then(doc = > { console.log(doc); }) .catch(err = > { console.log(err); });
This is the process we need to follow:
- Define the schema for MongoDB using the schema details.
- Let us see how we can define the documents in the details collection.
const mongoose = require("mongoose"); const detailsSchema = mongoose.Schema({ fname: String, age: Number, place: String }); module.exports = mongoose.model("Details", detailsSchema);
- We create a schema called details Schema that can be exported with the name “details”. Now, let us see the application of the findByID function:
Details.findById(ObjectId("5d71522ab352f78f435d2d8b"));
- Note the parameter of the findById function, what do you see? Yup, it’s the exact as in the _id. ~~> ObjectId(“5d71522dc452f78e335d2d8b”);
- Also, remember that if you pass only the actual ID, i.e. 5d71522dc452f78e335d2d8b, it will not work.
- The function returns a promise, and we need to handle it accordingly as given below:
then((doc)=>{ console.log(doc); }) .catch((err)=>{ console.log(err); });
- Now, if this operation executes successfully then; the received argument – doc – contains the returned document, otherwise an error ensues.
Working without Mongoose ~~> ~~>
Remember that you do not necessarily have to use Mongoose. You can thus always use the tried and true MongoDB. To find a document by ID, you can use the find or findOne methods and specify the ID as an argument:
collection.find({ _id: ObjectId("5d71522dc452f78e335d2d8b") }); #You can even use the below command : collection.findOne({ _id: ObjectId("5d71522dc452f78e335d2d8b") });

Here’s a quality read comparing MongoDB with MySQL !! ~~> ~~>
WRAPPING UP !! findByID MongoDB ~~> ~~>
The findByID MongoDB function is useful when retrieving data using the _id field. It actually triggers the findOne() function. It returns a promise and we shall handle it accordingly. In this post, you also have seen how to do this, and I hope you can apply what you have learned to your code. Hope this helps. Keep practicing and do well. On that note, until next time, see ya!! Goodbye!! ~~> ~~>
:: ~~> ~~> :: ** :::::: ** :: )) ** :: ** (( ~~> ~~>