Open In App

Mongoose Query prototype.select() API

Last Updated : 17 Nov, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Mongoose is an Object Data Modeling (ODM) library for MongoDB. It defines a strongly-typed schema, with default values and schema validations which are later mapped to a MongoDB document. 

Mongoose Query API select method is used to determine which document fields to select or deselect while fetching them from the DB. Let’s understand more about this with some examples.

Syntax:

Query.prototype.select()

Parameters: It takes one parameter.

  • arg: It is a type of Object or String or Array of Strings

Return type: It returns the Query object.

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 creating the ReactJS application, Install the required module using the following command:

npm install mongoose

Project Structure: It will look like the following.

 

GUI Representation of the  Database using MongoDB Compass: Currently, the collection has no data.

 

Example 1: In this example, we will use the Query API select() method to deselect the “age” property from the documents fetched from DB.

Filename: main.js

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,
    },
    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 query = Person.find().select('-age')
    const persons = await query;
    console.log(persons);
})()


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

node main.js

Output: We see that the value remains unchanged in the result.

 

GUI Representation of the Database using MongoDB Compass:

 

Example 2: In this example, we will first set “select” to “false” at the “name” property in the schema, but override this to “true” by using the Query API select() method.

Filename: main.js

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 query = Person.find().select('name')
    const persons = await query;
    console.log(persons);
})()


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

node main.js

Output: We see that the value remains unchanged in the result.

 

GUI Representation of the  Database using MongoDB Compass:

 

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



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads