Mongoose SchemaType.prototype.transform()函数
Mongoose 是一个用于node.js环境的MongoDB对象建模和处理工具。 Mongoose SchemaType transform 是一个SchemaType方法,它允许我们在将文档转换为JSON时转换或操作路径。Mongoose使用路径的当前值作为方法的参数。让我们通过一些示例来更好地理解这一点。
创建node应用程序并安装Mongoose:
步骤1: 使用以下命令创建一个node应用程序:
mkdir folder_name
cd folder_name
npm init -y
touch main.js
步骤2: 创建 ReactJS 应用后,使用以下命令安装所需模块:
npm install mongoose
项目结构: 它将如下所示。
示例1: 在这个示例中,我们将创建一个转换函数,该函数将返回存储在路径中的数据的年份。
文件名: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'));
const personSchema = new mongoose.Schema({
date: {
type: Date,
transform: v => v.getFullYear()
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({ date: new Date() });
console.log(person.toJSON().date);
运行应用程序的步骤: 从项目的根目录中使用以下命令运行应用程序:
node main.js
输出:
示例2:
在这个示例中,我们将创建一个转换函数,从由名字和姓氏数组构成的数组中获取一个人的全名。
文件名: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'));
const personSchema = new mongoose.Schema({
name: {
type: Array,
transform: v => v.join(' ')
}
});
const Person = mongoose.model('Person', personSchema);
const person = new Person({ name: ['John', 'Doe'] });
console.log(person.toJSON().name);
运行应用程序的步骤: 从项目的根目录中使用以下命令运行应用程序:
node main.js
输出:
参考: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-transform