我目前正在使用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时,我将收到错误消息。
是否有任何库或逻辑/简单的方法可以做到这一点?