MongoDB延迟迁移

时间:2019-05-15 18:22:47

标签: node.js mongodb express mongoose

我目前正在使用API​​,并提出一个问题:什么是进行懒文档迁移的最佳方法。例如:

文档的版本1具有以下结构:

_id: mongoose.Schema.Types.ObjectId,
    email: { type: String, required: true },
    username: { type: String, default: null },
    password: { type: String, required: true },
    registeredOn: { type: Date, default: Date.now },
    permission_level: { type: Number, default: constants.LEVELS.DEFAULT },
    settings: {
        usesCommunity: { type: Boolean, default: false }
    }

但是在新文档中(版本2)

我有一个额外的字段“ personal_info”,如下所示:

_id: mongoose.Schema.Types.ObjectId,
    email: { type: String, required: true },
    username: { type: String, default: null },
    password: { type: String, required: true },
    registeredOn: { type: Date, default: Date.now },
    permission_level: { type: Number, default: constants.LEVELS.DEFAULT },
    settings: {
        usesCommunity: { type: Boolean, default: false }
    },
    personal_info: {
        first_name: { type: String, default: null },
        last_name: { type: String, default: null },
        date_of_birth: { type: Date, default: null }
    }

“懒惰”迁移还没有“ personal_info”字段的文档的最佳方法是什么?

例如,如果我尝试检索“ personal_info”数据,则该文档仍为版本1而不是版本2时,我将收到错误消息。

是否有任何库或逻辑/简单的方法可以做到这一点?

0 个答案:

没有答案