Skip to content
Related Articles
Open in App
Not now

Related Articles

Mongoose Queries Model.replaceOne() Function

Improve Article
Save Article
  • Last Updated : 08 Dec, 2022
Improve Article
Save Article

The Queries Model.replaceOne() function of the Mongoose API is used to replace an existing document with the given document. It replaces only the first document that is returned in the filter.

Syntax:

Model.replaceOne( filter, doc, options, callback )

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

  • filter: It is a mongoose object which identifies the existing document to replace.
  • doc: It is a mongoose object which is the document that will replace the existing document.
  • options: It is an optional mongoose object which is derived from Query.prototype.setOptions()
  • callback: It is a callback function that accepts 2 parameters: error and res

Return type: It returns a Query object 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 replaceOne() method.

Example 1: In this example, we will use this method to replace an existing document that has the name “Luffy” with a new document.

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: 22
    },
    {
        name: 'Nami',
        age: 30
    },
    {
        name: 'Zoro',
        age: 15
    }
]
  
const Person = mongoose.model('Person', personSchema);
  
(async () => {
    await Person.insertMany(personsArray);
    const res = await Person.replaceOne(
        { name: 'Luffy' }, 
        { name: 'Usurp', age: 23 }
    );
    console.log(res.matchedCount);
})()


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

node main.js

Output:

Connected to database
1

GUI Representation of the Database using MongoDB Compass:

 

Example 2: In this example, we will use this method to replace an existing document that has age “19” with a new document.

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.replaceOne(
        { age: 19 }, 
        { name: 'Usurp', age: 23 }
    );
    console.log(res.modifiedCount);
})()


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

node main.js

Output:

Connected to database
1

GUI Representation of the  Database using MongoDB Compass:

 

Reference: https://mongoosejs.com/docs/api.html#model_Model-replaceOne


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!