我有另一个关于mongodb(mongoose)的愚蠢问题,在一个nodejs项目中使用typescript:有没有可能在每个模式中添加一些字段,而不需要在每个模式中重写它?我知道,我可以用…schema.obj符号扩展模式。但我的想法是将这些字段添加到插件中,然后将其集中。我有问题,以扩大目前的模式与泛型和无法访问的属性。有人知道怎么解决这个问题吗?也许类型有可能传递给我可以访问此字段的Document-Type?多谢了。
kokeuurv1#
您可以像这样创建BaseSchema
const { Schema } = mongoose; const baseSchema = new Schema({ commonField1: { type: String, required: true }, commonField2: { type: Number, default: 0 } }); module.exports = baseSchema;
然后在其他模式中使用它,如
const mongoose = require('mongoose'); const Base = require('./base'); const { Schema } = mongoose; const extendedSchema = new Schema( Object.assign( {}, Base.obj, // Get the fields from the base schema { additionalField: { type: String, required: true } } ) ) module.exports = mongoose.model('Extended', extendedSchema);
1条答案
按热度按时间kokeuurv1#
您可以像这样创建BaseSchema
然后在其他模式中使用它,如