Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Mongoose Query.prototype.pre() API

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

The Mongoose Query API pre() method is used to add a pre-middleware to the mongoose query instance, which can be used in performing pre-query operations.

Syntax:

Query.prototype.pre(fn)

Parameters: It accepts the following parameters as mentioned above and described below:

  • fn: It is a middleware function that is used to perform pre-query operations

Return type: It returns a Query object as a response.

Creating node application And Installing Mongoose:

Step 1: Create a node application using the following command:

mkdir folder_name
cd folder_name
npm init -y
touch main.js

Step 2: After completing the Node.js application, Install the required module using the following command:

npm install mongoose

Example 1: In this example, we will use this method to log the query filters to the console.

Filename: main.js

Javascript




// Importing the module
const mongoose = require('mongoose')
  
// Creating the connection
    {
        dbName: 'event_db',
        useNewUrlParser: true,
        useUnifiedTopology: true
    }, err => err ? console.log(err)
        : console.log('Connected to database'));
  
const personSchema = new mongoose.Schema({
    name: {
        type: String,
    },
    age: {
        type: Number,
    }
});
  
const personsArray = [
    {
        name: 'Luffy',
        age: 20
    },
    {
        name: 'Nami',
        age: 20,
    },
    {
        name: 'Zoro',
        age: 35
    }
]
  
const Person = mongoose.model('Person', personSchema);
  
(async () => {
    let query = Person.find({ age: 20 })
    query.pre(function middleware() {
        console.log(this.getFilter());
    })
    await query.exec()
})()


Step to Run Application: Run the application using the following command from the root directory of the project:

node main.js

Output:

 

Example 2: In this example, we will use this method to log the whole query to the console.

Filename: main.js

Javascript




// Importing the module
const mongoose = require('mongoose')
  
// Creating the connection
    {
        dbName: 'event_db',
        useNewUrlParser: true,
        useUnifiedTopology: true
    }, err => err ? console.log(err)
        : console.log('Connected to database'));
  
const personSchema = new mongoose.Schema({
    name: {
        type: String,
    },
    age: {
        type: Number,
    }
});
  
const personsArray = [
    {
        name: 'Luffy',
        age: 20
    },
    {
        name: 'Nami',
        age: 20,
    },
    {
        name: 'Zoro',
        age: 35
    }
]
  
const Person = mongoose.model('Person', personSchema);
  
(async () => {
    let query = Person.find({ name: 'Luffy' })
        .where('age').equals(20)
    query.pre(function middleware() {
        console.log(this.getQuery());
    })
    await query.exec()
})()


Step to Run Application: Run the application using the following command from the root directory of the project:

node main.js

Output:

 

Reference: https://mongoosejs.com/docs/api/query.html#query_Query-pre


My Personal Notes arrow_drop_up
Last Updated : 24 Jan, 2023
Like Article
Save Article
Similar Reads
Related Tutorials