Mongoose Schematype.get()函数
Mongoose 是用于 node.js 环境的 MongoDB 对象建模和处理工具。Mongoose API 中的 Schematype.get() 方法用于从 MongoDB 数据库或模式中获取、操作或转换数据。使用此函数,我们可以根据需求修改数据库中任何属性的值。让我们通过示例来了解 Mongoose Schematype.get() 方法。
语法:
SchemaType.get(<function>)
参数: Schematype.get() 方法 接受一个参数:
- getterFunction: 它是返回修改或处理后的数据的函数。
返回值: Schematype.get() 函数返回此模式类型的所有实例的访问权限。
设置Node.js应用程序:
步骤1: 使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建完成NodeJS应用之后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: \n 项目结构将如下所示:\n
数据库结构: 数据库结构看起来像这样,集合中包含以下文档。
示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并定义了一个基于userSchema的模型,其中有三个列或字段:“name”,“age”和“weight”。在模式级别上,“weight”属性上我们定义了一个getter函数,它会返回“weight”的四舍五入值。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
// Define a user schema
const userSchema = new mongoose.Schema({
name: {
type: String
},
age: {
type: Number
},
weight: {
type: Number,
get: (value) => {
return Math.ceil(value)
}
}
});
const User = mongoose.model('User', userSchema);
// Find the user by given ID
User.findById('63845defc7553ff921623ff9').then(result => {
console.log(result.weight);
});
运行程序的步骤: 从项目的根目录中执行以下命令来运行应用程序:
node app.js
输出:
66
示例2: 在此示例中,我们使用mongoose建立了数据库连接,并在userSchema上定义了一个模型,包含四个列或字段“name”,“age”,“weight”和“height”。在模式级别上,“height”属性上,我们定义了getter函数,以返回以厘米为单位的身高。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
// Define the user schema
const userSchema = new mongoose.Schema({
name: {
type: String
},
age: {
type: Number
},
weight: {
type: Number,
get: (value) => {
return Math.ceil(value)
}
},
height: {
type: Number,
// Define the getter function
get: (value) => {
return value * 30.48
}
}
});
const User = mongoose.model('User', userSchema);
const user = new User({
name: "User1", age: 25,
weight: 68.5, height: 5.8
})
user.save()
console.log('Height in cm -', user.height)
运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:
node app.js
输出:
Height in cm - 176.784
参考: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-get