在MongoDb中更新之前检查数据

时间:2014-02-05 15:33:22

标签: node.js mongodb

我使用findAndModify,它可以正常使用。

这是我的架构

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

如果我插入username : 100username中的Schema会更改Double

我可以在更新前检查元素,仅在usernameString时才更新吗?

1 个答案:

答案 0 :(得分:3)

不要被Mongoose愚弄,它只是一个“帮助者”(尽管我的感觉主要是增加了混乱)。

了解MongoDB本身非常重要。 MongoDB没有架构。在使用之前,您甚至不需要声明集合,例如在一个新启动的mongodb上,第一个命令:db.bla.insert({"Name":"john"});正常工作。然后,db.bla.insert({"xf":1456});也可以正常工作,即使它与第一个文档完全不同

因此,MongoDB无法根据某种模式验证您的对象,而且不必。问题是您的代码是否可以应对。在大多数情况下,拥有严格的架构是有意义的。执行架构必须由您的应用程序代码完成,不过我相信Mongoose offers a helper, doc.validate()