我有一个用于生产的UserModel。我想添加一个布尔属性(isRegistered)。对于已经在我的平台上的人,我希望这个新属性是真的。对于新用户,我希望默认情况下它是假的。
如何将default: false
放入我的猫鼬模型中,但对于已经在这里的人来说却是如此?
谢谢!
答案 0 :(得分:1)
您需要等到部署新应用程序。然后,在部署之后,您将isRegistered
字段设置为true,您可以运行命令来更新所有没有该文档的文档字段集。
db.collection.update({
isRegistered: { $exists: false }
}, {
isRegistered: true
}, {
multi: true
})
答案 1 :(得分:0)
我建议:
default: false
属性添加isRegistred
isRegistered
更新为true
< / LI>
这样,您的所有旧用户都将被标记为已注册,而未来的用户则不会。我假设你或MongoDB正在跟踪一个人注册的日期。
答案 2 :(得分:0)
您的架构将是这样的:
var UserSchema = new Schema({
name: String,
isRegistered: { type: boolean, default: false }
});
因此,默认情况下,所有用户都会将isRegistered
字段设为false
已插入User
集合的文档中没有字段isRegistered
。因此,您可以更新集合中的所有文档以包含该字段。
因此,您可以执行以下操作,将isRegistered
字段添加到User
集合中的所有文档中。像这样:
var conditions = {},
update = { isRegistered: true },
options = { multi: true };
UserSchema.update(conditions, update, options, callback);
function callback (err, numAffected) {
// numAffected is the number of updated documents
});