在MongoDB中实施模式验证

时间:2013-02-14 14:59:06

标签: java mongodb

我正在寻找验证插入MongoDB的数据是否与模式匹配的方法,例如:拥有所有必填字段和正确的数据类型。我知道Mongo本身是无模式的,但是如果我可以在将数据传递给Mongo驱动程序之前验证应用程序级别的数据,那就很好。

我看过JSON-Schema。我最大的犹豫是我只能找到一个用于模式验证的Java库,我不知道我是否应该相信它,我更喜欢由Apache或Google支持的库。

我还研究过Apache Thrift,Avro和Protocol Buffers,它们不是专门的验证框架,但它们都有一个模式的概念。如果有办法捎带其中一个进行验证,我会感兴趣。

有什么建议吗?或者我应该接受Mongo的无模式,甚至不想尝试验证数据?

2 个答案:

答案 0 :(得分:5)

在即将发布的 Mongo 3.2版中,他们添加了document validationslides)。

您可以使用validator选项使用几乎所有mongo查询运算符($geoNear$near$nearSphere$text除外,为每个集合指定验证规则,和$where)。您可以在我的answers之一中了解有关它的更多信息。

答案 1 :(得分:3)

不确定你是否还在寻找,但是对象文档映射器(ODM)可以解决问题。

我已检查过MorphiaSpring Data - MongoDB,因为他们会将您的文档直接映射到Java类,因此会照顾您的类型安全问题。