Mongoose Query.prototype.in() API
Last Updated :
22 May, 2025
In MongoDB, querying documents based on specific conditions is an essential part of data retrieval. The Mongoose Query.prototype.in() API offers a powerful method to perform queries that check if a field's value is contained within an array of values. This API simplifies the process of matching values to a list of possibilities and is commonly used for filtering documents that contain any of the specified values in a field.
In this article, we’ll cover the Mongoose in()
API, providing a thorough explanation, syntax, examples, and step-by-step instructions on how to use it to filter your MongoDB documents efficiently.
What is the Mongoose in()
Method?
The in()
method in Mongoose is used to filter documents from a collection where the value of a specific field matches any value from an array. It's an efficient way to query multiple values for a single field. The method is often used in scenarios where you need to check if a particular field matches any item in a predefined list of possible values.
Syntax:
Query.prototype.in(path, val)
Parameters:
- path: It is a string that identifies the attribute name in the mongoose schema
- val: It is an array that determines the range of values to scan and find all the documents whose paths have values lying in the array
Return type
- The
in()
method returns a Query object, which can then be executed using .exec()
or await
to retrieve the results.
When to Use the in()
Method
The in()
method is ideal for scenarios where you need to:
- Query multiple possible values for a specific field.
- Optimize query performance by filtering documents with multiple values without needing to chain multiple queries together.
- Search large datasets efficiently when checking for multiple potential matches in a field.
It is commonly used for filtering data like:
- User roles (admin, user, guest)
- Product categories
- Age groups or date ranges
- Tags and labels
Setting Up Node.js Application with Mongoose
Before diving into the examples, let’s set up a simple Node.js application and install Mongoose.
Step 1: Create a Node.js Application
Create a node application using the following command:
mkdir folder_name
cd folder_name
npm init -y
touch main.js
Step 2: Install Mongoose
After completing the Node.js application, Install the required module using the following command:
npm install mongoose
Example 1: Filtering by Age Using the in()
Method
In this example, we will filter documents based on the age
field, looking for all documents where the age
is either 35
or 40
.
Filename: main.js
// Importing the module
const mongoose = require('mongoose');
// Creating the connection
mongoose.connect('mongodb://localhost:27017/query-helpers', {
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err) : console.log('Connected to database'));
// Defining a Schema
const personSchema = new mongoose.Schema({
name: {
type: String
},
age: {
type: Number
}
});
// Sample data to insert
const personsArray = [
{ name: 'Luffy', age: 20 },
{ name: 'Nami', age: 20 },
{ name: 'Zoro', age: 35 }
];
// Creating the Model
const Person = mongoose.model('Person', personSchema);
// Inserting sample data and querying using `in()`
(async () => {
await Person.insertMany(personsArray); // Insert sample data
const res = await Person.find().in('age', [35, 40]); // Query by age
console.log({ res });
})();
Step to Run Application: Run the application using the following command from the root directory of the project:
node main.js
Output:
GUI Representation of the Database using MongoDB Compass:
Example 2: Filtering by Name Using the in() Method
In this example, we will filter documents based on the name
field, looking for documents where the name
is either Zoro
or Usorp
.
Filename: main.js
//Importing the module
const mongoose = require('mongoose')
// Creating the connection
mongoose.connect('mongodb://localhost:27017/query-helpers',
{
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err)
: console.log('Connected to database'));
let personSchema = new mongoose.Schema({
name: {
type: String,
},
age: {
type: Number,
}
});
let personsArray = [
{
name: 'Luffy',
age: 20
},
{
name: 'Nami',
age: 20,
},
{
name: 'Zoro',
age: 35
}
]
let Person = mongoose.model('Person', personSchema);
(async () => {
await Person.insertMany(personsArray)
const res = await Person.find().in(
'name', ['Zoro', 'Usorp']
)
console.log({ res });
})();
Step to Run Application: Run the application using the following command from the root directory of the project:
node main.js
Output:
GUI Representation of the Database using MongoDB Compass
To visualize the data in your MongoDB database, you can use MongoDB Compass, a graphical interface for MongoDB. After running the above queries, you can view your filtered data using Compass by connecting to your database at mongodb://localhost:27017/query-helpers
and navigating to the event_db collection.
Conclusion
The Mongoose in()
method is an efficient way to query documents based on a set of possible values for a specific field. It simplifies data retrieval by checking if a field’s value matches any in a provided array, improving both performance and code simplicity. This method is particularly useful for filtering large datasets, making it ideal for applications that require dynamic queries on multiple values. Using indexed fields can further optimize the query performance.
Similar Reads
Mongoose Query() API
The Mongoose API Query() method of the Mongoose API is used as a constructor to create a reference of Query. It allows us to create query objects and build query expressions. We do not need to create an object of the Query class in order to interact with the MongoDB collection. We can directly call
3 min read
Mongoose Query.prototype.$where() API
The Mongoose Query API.prototype.$where() method of the Mongoose API is used on the Query objects. It allows us to put the where condition in the form of JavaScript object or a function in order to pass the expression to the mongodb system. Let us understand the $where() method using an example. Syn
3 min read
Mongoose Query.prototype.and() API
The Mongoose Query API and() method is used to add additional filters to the current mongoose query instance. Syntax: Query.prototype.and(array) Parameters: It accepts the following parameters as mentioned above and described below: array: It is an array of conditions to concatenate to the current m
3 min read
Mongoose Query.prototype.catch() API
The Mongoose Query API.prototype.catch() method of the Mongoose API is used on the Query objects. It allows us to execute the query returned promise. Using this method we can handle the rejected promise error and can display it or use it for next processes. Rejected handler by the promise can be han
3 min read
Mongoose Query.prototype.clone() API
The Mongoose Query API clone() method is used to copy a mongoose query, and then can be executed anytime later. This method is useful if a query needs to be executed more than once, as a single query can't be executed twice. Syntax: Query.prototype.clone() Return type: It returns a Query object as a
3 min read
Mongoose Query.prototype.count() API
The Mongoose Query API count() method is used to count all the documents from a collection that matches the filter object provided in the arguments. Syntax: Query.prototype.count(filter, callback) Parameters: It accepts the following parameters as mentioned above and described below: filter: It is a
3 min read
Mongoose Query.prototype.countDocuments() API
The Mongoose Query API countDocuments() method is used to count all the documents from a collection that matches the filter object provided in the arguments. Syntax: Query.prototype.countDocuments(filter, options, callback) Parameters: It accepts the following parameters as mentioned above and descr
3 min read
Mongoose Query.prototype.deleteMany() API
The Mongoose Query API deleteMany() method is used to find and delete documents that are determined from the filter parameter, from a collection, using the MongoDB query system. Syntax: Query.prototype.deleteMany(filter, options, callback) Parameters: It accepts the following parameters as mentioned
3 min read
Mongoose Query.prototype.deleteOne() API
The Mongoose Query API deleteOne() method is used to find and delete a single document that is determined from the filter parameter, from a collection, using the MongoDB query system. Syntax: Query.prototype.deleteOne(conditions, options, callback) Parameters: It accepts the following parameters as
3 min read
Mongoose Query.prototype.distinct() API
The Mongoose Query API distinct() method is used to find the distinct values for a particular field in a collection and return the response as an array. Syntax: Query.prototype.distinct(field, filter, callback) Parameters: It accepted the following parameters as mentioned above and described below:
3 min read