我們正在快速開發使用Mongoose的應用程序,並且我們的模式經常更改。我似乎無法找出更新現有文檔架構的正確方法,而不會將它們吹走並從頭開始徹底重新創建它們。我看到http://mongoosejs.com/docs/api.html#schema_Schema-add,這看起來是正確的。幾乎沒有關於如何真正實現這個的文檔,這使得對於MongoDB的新手很難。Mongoose更改模式格式
我只是想添加一個名爲enabled的新字段。我的模式定義如下:
var sweepstakesSchema = new Schema({
client_id: {
type: Schema.Types.ObjectId,
ref: 'Client',
index: true
},
name: {
type: String,
default: 'Sweepstakes',
},
design: {
images: {
type: [],
default: []
},
elements: {
type: [],
default: []
}
},
enabled: {
type: Boolean,
default: false
},
schedule: {
start: {
type: Date,
default: Date.now
},
end: {
type: Date,
default: Date.now
}
},
submissions: {
type: Number,
default: 0
}
});
*但像新字段的默認值更改只會影響新的文檔前進。* - 我想它也影響更新的文檔嗎? (不僅是新的) – Michael
@邁克爾不是真的,不。使用默認值添加新字段將使這些字段出現在現有文檔的貓鼬實例中,但實際上它不會將字段添加到現有文檔中,即使您對它們調用了「保存」。 – JohnnyHK
因此,在將'x'添加到具有默認值的模式後,以前沒有字段'x'的文檔將不會使用'x'更新文檔?我不明白這個設計的選擇,這是否記錄在某處?謝謝 – Michael