Node.js 有没有办法在mongoose的另一个模式中重用模式文档属性?
我有两个模式,它们具有重复的Node.js 有没有办法在mongoose的另一个模式中重用模式文档属性?,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我有两个模式,它们具有重复的创建的和修改的属性。mongodb中有没有一种方法可以重用它,而不是反复重复相同的代码?似乎找不到合适的短语来谷歌搜索这个 管理模式 import mongoose from 'mongoose'; const AdminSchema = new mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, companyId: { id: mongoose.Schema.Types.ObjectId,
创建的
和修改的
属性。mongodb中有没有一种方法可以重用它,而不是反复重复相同的代码?似乎找不到合适的短语来谷歌搜索这个
管理模式
import mongoose from 'mongoose';
const AdminSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
companyId: {
id: mongoose.Schema.Types.ObjectId,
ref: 'Company',
},
created: {
at: {
type: Date,
default: Date.now,
},
by: String,
},
modified: {
at: {
type: Date,
default: Date.now,
},
by: String,
},
});
export default mongoose.model('Admin', AdminSchema);
管理员权限模式
import mongoose from 'mongoose';
const AdminPermissionsSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
companyId: {
id: mongoose.Schema.Types.ObjectId,
ref: 'Company',
},
label: String,
description: String,
created: {
at: {
type: Date,
default: Date.now,
},
by: String,
},
modified: {
at: {
type: Date,
default: Date.now,
},
by: String,
},
});
export default mongoose.model('AdminPermissions', AdminPermissionsSchema);
Mongoose为您提供了在创建或更新文档时使用
createdAt
和updatedAt
属性设置时间戳的选项。执行此操作,而不是使用创建的和修改的
const AdminSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
companyId: {
id: mongoose.Schema.Types.ObjectId,
ref: 'Company',
},
createdBy: String,
modifiedBy: String,
}, {timestamps: true}); //this is required
export default mongoose.model('Admin', AdminSchema);
并分别处理createdBy
和modifiedBy
。您可以为所有模式声明添加时间戳,如上面的声明。Mongoose为您提供了在创建或更新文档时使用createdAt
和updatedAt
属性设置时间戳的选项。执行此操作,而不是使用创建的和修改的
const AdminSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
companyId: {
id: mongoose.Schema.Types.ObjectId,
ref: 'Company',
},
createdBy: String,
modifiedBy: String,
}, {timestamps: true}); //this is required
export default mongoose.model('Admin', AdminSchema);
并分别处理createdBy
和modifiedBy
。您可以像上面那样为所有模式声明添加时间戳。这可以通过插件完成。但是mongoose也有这样的功能(更新和创建日期),这可以通过一个插件来完成。但是mongoose在板上也有这样的功能(更新和创建日期)。酷:D所以这些时间戳是默认的UTC,对吗?然后你只需加上你的偏移量,例如+8小时。。。取决于时区?酷:D所以这些时间戳是默认的UTC,对吗?然后你只需加上你的偏移量,例如+8小时。。。取决于时区?