首页 > 解决方案 > 猫鼬模型保存

问题描述

创建文档时我注意到一个非常奇怪的行为

export const questionSchema: Schema<IQuestion> = new Schema<IQuestion>(
    {
        questionLevel: {
            type: Schema.Types.Number,
            index: true
        },
        answer: {
            type: Schema.Types.String
        },
        translations: [
            {
                language: {
                    type: Schema.Types.String
                },
                question: {
                    type: Schema.Types.String
                }
            }
        ]
    },
    { timestamps: true, collection: EDb.QUESTION_MODEL_NAME, minimize: false }
);

当我尝试保存新文档时:

new this.model(newData).save()

文档已创建但没有数组

但是如果我将代码更改为

const newData: any = new this._model();
for (const key in data) {
    newData[key] = data[key];
}

return newData.save();

一切开始正常

标签: mongodbmongoosemongoose-schemamongoose-models

解决方案


Mongoose 不会显示空数组。如果您的模型架构有一个数组字段,但当您保存文档时,如果您没有向该数组添加任何元素,则除非添加了一个元素,否则它将不会显示该数组。


推荐阅读