有没有办法在猫鼬的另一个模式中重用模式文档属性?
Is there a way to reuse schema document properties in another schema in mongoose?
我有两个模式,它们具有重复的 created
和 modified
属性。 mongodb 有没有办法重用它而不是一遍又一遍地重复相同的代码?似乎找不到合适的词组来 google 搜索这个。
管理模式
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);
AdminPermissions 架构
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
属性 timestamp 的选项。这样做而不是使用 created
和 modified
,
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
。您可以像上面那样为所有模式声明添加时间戳。
我有两个模式,它们具有重复的 created
和 modified
属性。 mongodb 有没有办法重用它而不是一遍又一遍地重复相同的代码?似乎找不到合适的词组来 google 搜索这个。
管理模式
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);
AdminPermissions 架构
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
属性 timestamp 的选项。这样做而不是使用 created
和 modified
,
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
。您可以像上面那样为所有模式声明添加时间戳。