在MongoDb中更新之前检查数据

我使用findAndModify ,它的工作。

这是我的模式

 var userSchema = new mongoose.Schema({ _id : ObjectId, username : String, }, { safe : true }); 

如果我插入username : 100 ,我在Schema中的username更改为Double

我可以检查更新之前的元素,并更新只有当usernameString

不要被mongoose愚弄,这只是一个“帮手”(虽然我的感觉大多是混乱)。

了解MongoDB本身就很重要。 MongoDB没有模式。 你甚至不需要在使用它之前声明一个集合,例如在一个新开始的mongodb上,有史以来的第一个命令: db.bla.insert({"Name":"john"}); 只是工作。 然后,做db.bla.insert({"xf":1456}); 即使它与第一个文档完全不同 ,也是有效的。

因此,MongoDB不能根据某种模式validation你的对象,也不需要。 问题是你的代码是否可以应付,或不。 在大多数情况下,有一个严格的模式是有道理的。 强制模式必须由您的应用程序代码完成,但我相信Mongoose提供了一个助手, doc.validate()为此。