Skip to content
Related Articles

Related Articles

Improve Article

How does Query.prototype.map() works in Mongoose ?

  • Last Updated : 12 Mar, 2021

The Query.prototype.map() function is used to run a function fn and treats the return value of fn as the new value for the query to resolve to. All the function which are passed to map() fnction will be run after any post hooks.
 

Syntax:  

Query.prototype.map()

Parameters: This function has one parameter fn which is function to run to transform the query result.
Return Value: This function returns Query Object.

Mongoose Installation:

npm install mongoose

After installing the mongoose module, you can check your mongoose version in command prompt using the command. 



npm mongoose --version

After that, you can just create a folder and add a file for example, index.js as shown below.

Database: The sample database used here is shown below: 
 

Example 1:

index.js




const mongoose = require('mongoose');
  
// Database connection
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true
});
  
// User model
const User = mongoose.model('User', { 
    name: { type: String },
    age: { type: Number }
});
  
const query = User.find({name:"Lalit"}).map(res => {
      
  console.log("loadedAt property set on the doc "
       + "to tell the time doc was loaded.")
  return res == null ? res : Object.assign(res, 
       { loadedAt: new Date() });
});
  
query.exec(function(err, res){
    if(err) console.log(err)
    else console.log(res)
});

The project structure will look like this: 
 

Run index.js file using below command: 



node index.js

Output: 

loadedAt property set on the doc to tell the time doc was loaded.
[
  { _id: 5ebc3669a99bde77b2efb9ba, name: 'Lalit', age: 25, __v: 0 },
  loadedAt: 2020-07-14T18:22:57.991Z
]

Example 2:

index.js




const express = require('express');
const mongoose = require('mongoose');
const app = express()
  
// Database connection
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true
});
  
// User model
const User = mongoose.model('User', { 
    name: { type: String },
    age: { type: Number }
});
  
const query = User.find().map(res => {
      
 console.log("loadedAt property set on the doc "
      + "to tell the time doc was loaded.")
 return res == null ? res : Object.assign(res,
      { loadedAt: new Date() });
  
});
  
query.exec(function(err, res){
    if(err) console.log(err)
    else console.log(res)
});
  
app.listen(3000, function(error ) {
    if(error) console.log(error)
    console.log("Server listening on PORT 3000")
});

The project structure will look like this: 
 

Run index.js file using below command: 

node index.js

Output: 

Server listening on PORT 3000
Server listening on PORT 3000
loadedAt property set on the doc to tell the time doc was loaded.
[
  { _id: 5ebb9129a99bde77b2efb809, name: 'Gourav', age: 10, __v: 0 },
  { _id: 5ebc3669a99bde77b2efb9ba, name: 'Lalit', age: 25, __v: 0 }, 
  { _id: 5ebc367da99bde77b2efb9bf, name: 'Piyush', age: 5, __v: 0 }, 
  { _id: 5ebd345f5d2d8a3534b2f391, name: 'Manish', age: 34, __v: 0 },
  loadedAt: 2020-07-14T18:24:36.890Z
]

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




My Personal Notes arrow_drop_up
Recommended Articles
Page :