Open In App

Mongoose Aggregate.prototype.match() API

Last Updated : 22 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

The Aggregate API.prototype.match() function of the Mongoose API is used to find the existing documents in the database that matches the conditions mentioned in the arguments of the API.

Syntax:

Aggregate.prototype.match()

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

  • args: It is a mongoose object which identifies match conditions for the operator.

Return type: It returns the matched documents as a response.

Setting up Node.js Mongoose Module:

Step 1: Create a Node.js application using the following command:

npm init

Step 2: After creating the NodeJS application, Install the required module using the following command:

npm install mongoose

The below examples will demonstrate the Mongoose Aggregate API.prototype.match() method.

Example 1: In this example, we will use this method to find existing documents that have the name “Luffy”.

Javascript




const mongoose = require('mongoose')
  
// Database 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,
        select: false
    },
    age: {
        type: Number,
    }
});
  
const personsArray = [
    {
        name: 'Luffy',
        age: 19
    },
    {
        name: 'Nami',
        age: 30
    },
    {
        name: 'Zoro',
        age: 35
    }
]
  
const Person = mongoose.model('Person', personSchema);
  
(async () => {
    await Person.insertMany(personsArray);
    const res = await Person.aggregate()
        .match({ name: 'Luffy' });
  
    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: In this example, we will use this method to find existing documents that have the name either “Nami” or “Zoro”.

Javascript




const mongoose = require('mongoose')
  
// Database 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,
        select: false
    },
    age: {
        type: Number,
    }
});
  
const personsArray = [
    {
        name: 'Luffy',
        age: 19
    },
    {
        name: 'Nami',
        age: 30
    },
    {
        name: 'Zoro',
        age: 35
    }
]
  
const Person = mongoose.model('Person', personSchema);
  
(async () => {
    await Person.insertMany(personsArray);
    const res = await Person.aggregate()
        .match({ name: { $in: ['Nami', 'Zoro'] } });
  
    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:

 

Reference: https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate-match



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads