mongodb Node + Mongo + Typescript:向每个文档添加字段

bz4sfanl  于 2023-06-29  发布在  Go
关注(0)|答案(1)|浏览(133)

我有另一个关于mongodb(mongoose)的愚蠢问题,在一个nodejs项目中使用typescript:
有没有可能在每个模式中添加一些字段,而不需要在每个模式中重写它?我知道,我可以用…schema.obj符号扩展模式。但我的想法是将这些字段添加到插件中,然后将其集中。
我有问题,以扩大目前的模式与泛型和无法访问的属性。
有人知道怎么解决这个问题吗?也许类型有可能传递给我可以访问此字段的Document-Type?
多谢了。

kokeuurv

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);

相关问题