在MongoDb中更新之前检查数据
我使用findAndModify
,它的工作。
这是我的模式
var userSchema = new mongoose.Schema({ _id : ObjectId, username : String, }, { safe : true });
如果我插入username : 100
,我在Schema
中的username
更改为Double
。
我可以检查更新之前的元素,并更新只有当username
是String
?
不要被mongoose愚弄,这只是一个“帮手”(虽然我的感觉大多是混乱)。
了解MongoDB本身就很重要。 MongoDB没有模式。 你甚至不需要在使用它之前声明一个集合,例如在一个新开始的mongodb上,有史以来的第一个命令: db.bla.insert({"Name":"john"});
只是工作。 然后,做db.bla.insert({"xf":1456});
即使它与第一个文档完全不同 ,也是有效的。
因此,MongoDB不能根据某种模式validation你的对象,也不需要。 问题是你的代码是否可以应付,或不。 在大多数情况下,有一个严格的模式是有道理的。 强制模式必须由您的应用程序代码完成,但我相信Mongoose提供了一个助手, doc.validate()
为此。