猫鼬模型保存

时间:2020-05-19 08:05:32

标签: mongodb mongoose mongoose-schema mongoose-models

在创建文档时,我发现一个非常奇怪的行为

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

一切正常!

1 个答案:

答案 0 :(得分:0)

猫鼬不会显示一个空数组。如果您的模型模式有一个数组字段,但是在保存文档时,如果您没有向该数组中添加任何元素,则除非该数组中添加了一个元素,否则它不会显示该数组。