Mongoose Schematype.cast() API
Last Updated :
27 Mar, 2023
Mongoose is a MongoDB object modeling and handling for a node.js environment. Mongoose.SchemaType.cast() is a method provided by Mongoose, which is used to cast a value to the appropriate type defined by a Mongoose schema. Let’s understand more about this with some examples.
Syntax:
mongoose.datatype.cast( function(){})
Parameters:
- datatype: It is the datatype for which type we want to cast the data.
- function: It is a function that uses some logic and returns desired datatype.
Returns type: It returns the anonymous function which is cast to the datatype.
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 application, Install the required module using the following command:
Advertisement
npm install mongoose
Project Structure: It will look like the following.
output1
Example 1: In this example, we will use the cast function in the mongoose and type cast the age property of person Schema to string.
Filename: script.js
Javascript
const mongoose = require( 'mongoose' );
let Schema = mongoose.Schema;
mongoose.Number.cast(v => {
if ( typeof v === 'number' ) { return '30' }
})
let personSchema = new Schema({
name: String,
age: Number
});
let Person = mongoose.model( 'Person' , personSchema);
let person = new Person({
name: 'John Doe' ,
age: 30
});
console.log( 'Type of Age is : ' , typeof person.age);
|
Step to Run Application: Run the application using the following command from the root directory of the project:
node script.js
Output:
Example 2: In this example, we will set the cast function inside the age in the property in the schema and typecast the property to Number.
Filename: script2.js
Javascript
const mongoose = require( 'mongoose' );
const Schema = mongoose.Schema;
let personSchema = new mongoose.Schema({
name: String,
age: {
type: Number,
cast: function castAge(v) {
if ( typeof v === 'number' ) {
return v;
}
if ( typeof v === 'string' && !isNaN(v)) {
return +v;
}
if (v instanceof Date) {
return Math.floor((Date.now() - v) /
(1000 * 60 * 60 * 24 * 365));
}
}
}
});
let Person = mongoose.model( 'Person' , personSchema);
let person = new Person({
name: 'John Doe' ,
age: new Date( '2001/01/30' )
});
console.log( 'Type of Age is : ' , typeof person.age);
console.log( 'Age of Person is :' , person.age);
|
Step to Run Application: Run the application using the following command from the root directory of the project:
node script2.js
Output:
Reference: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-cast
Share your thoughts in the comments
Please Login to comment...