Mongoose Schematype.set()函数
Mongoose 是一个用于 Node.js 环境下的 MongoDB 对象建模和处理工具。
Mongoose SchemaType setters 是 SchemaType 的方法,可以在数据存储到 MongoDB 或查询执行之前进行转换或操作。让我们通过一些示例更好地理解这个概念。
创建 Node 应用并安装 Mongoose:
示例1: 使用以下命令创建一个 Node 应用:
mkdir folder_name
cd folder_name
npm init -y
步骤 2: 创建 ReactJS 应用后,使用以下命令安装所需的模块:
npm install mongoose
项目结构:
它将如下所示。
示例1: 在这个示例中,我们将创建一个setter,它允许我们在将名称存储到数据库之前将其转换为大写。
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers', {
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err) : console.log
('Connected to database'));
function toUpper(v) {
return v.toUpperCase();
}
const personSchema = new mongoose.Schema({
name: {
type: String,
set: toUpper
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({ name: 'John' });
console.log(person.name);
运行应用程序的步骤: 从项目的根目录中使用以下命令运行应用程序:
node main.js
输出:
示例2: 在这个示例中,我们将创建一个setter,允许我们在将年龄存储到数据库之前将其转换为数字。
文件名: main.js
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers', {
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err) :
console.log('Connected to database'));
function helper(val) {
if (typeof val === 'string') {
val = Number(val)
}
return val;
}
const personSchema = new mongoose.Schema({
age: {
type: Number,
set: helper,
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({ age: '21' });
console.log(person.age);
运行应用程序的步骤: 从项目的根目录中使用以下命令运行应用程序:
node main.js
输出:
参考资料: https://mongoosejs.com/docs/api.html#schematype_SchemaType-set