如果在 Mongoose 中更改了架构,如何使用默认值更新集合中的所有文档

Sas*_*lli 0 javascript mongoose mongodb mongoose-schema

我以前有一个这样的架构

var schema = mongoose.Schema({
    type: String,
    name: String,
});
Run Code Online (Sandbox Code Playgroud)

现在我的架构发生了变化

var schema = mongoose.Schema({
    type: String,
    name: String,
    content: {
        title: {type: String, default: 'Some Title'},
        description: {type: String, default: 'Some Description'}
    }
});
Run Code Online (Sandbox Code Playgroud)

现在 Schema 已更改,我想使用 dafault 值更新集合中以前的文档,该怎么做?

sid*_*ate 5

直接在 MongoDB shell 上执行以下updateMany查询

db.collectionName.updateMany({}, {$set: {
    content: {title: "Some title", description: "Some description"}
}})
Run Code Online (Sandbox Code Playgroud)

要更新的第一个参数是一个空对象,它与所有现有记录匹配。