Open In App

Mongoose Query.prototype.readConcern() API

The Mongoose Query API.prototype.readConcern() method of the Mongoose API is used on the Query objects. It allows us to set and configure the read concern query options for a particular query object. Using this method we can control the consistency and isolation properties of the data from different replica sets. Let us understand the readConcern() method using an example.

Syntax:



query.readConcern( level );

Parameters: This method accepts a single parameter as described below:

Return Value: This method does not return any value.



Read Concern Level:

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

Project Structure: The project structure will look like this: 

 

Database Structure: The database structure will look like this, the following database present in the MongoDB.

 

Example 1: The below example illustrates the basic functionality of the Mongoose Connection readConcern() method. In this example, we are configuring read concern for local level.

Filename: app.js




// Require mongoose module
const mongoose = require("mongoose");
  
// Set Up the Database connection
  
const connectionObject = mongoose.createConnection(URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
  
const studentSchema = new mongoose.Schema({
    name: { type: String },
    age: { type: Number },
    rollNumber: { type: Number },
});
  
const Student = connectionObject.model('Student', studentSchema);
  
const query = Student.find()
query.readConcern('local');
query.exec((error, result) => {
    if (error) {
        console.log(error);
    } else {
        console.log(result);
    }
})

Step to run the program: To run the application execute the below command from the root directory of the project:

node app.js

Output:

[
  {
    _id: new ObjectId("63a40a1065e8951038a391b1"),
    name: 'Student1',
    age: 30,
    rollNumber: 9,
    __v: 0
  },
  {
    _id: new ObjectId("63a4a98407370cdcd1961b1a"),
    name: 'Student3',
    age: 33,
    rollNumber: 178,
    __v: 0
  },
  {
    _id: new ObjectId("63a4a9a207370cdcd1961b2c"),
    name: 'Student2',
    age: 18,
    rollNumber: 176,
    __v: 0
  }
]

Example 2: The below example illustrates the basic functionality of the Mongoose Connection readConcern() method. In this example, we are configuring read concern for majority level.

Filename: app.js




// Require mongoose module
const mongoose = require("mongoose");
  
// Set Up the Database connection
  
const connectionObject = mongoose.createConnection(URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
  
const studentSchema = new mongoose.Schema({
    name: { type: String },
    age: { type: Number },
    rollNumber: { type: Number },
});
  
const Student = connectionObject.model('Student', studentSchema);
  
const query = Student.find({ name: 'Student2' })
query.readConcern('majority');
query.then(result => {
    console.log(result);
}).catch(error => {
    console.log(error)
})

Step to run the program: To run the application execute the below command from the root directory of the project:

node app.js

Output:

[
  {
    _id: new ObjectId("63a4a9a207370cdcd1961b2c"),
    name: 'Student2',
    age: 18,
    rollNumber: 176,
    __v: 0
  }
]

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


Article Tags :