我正在寻找验证插入MongoDB的数据是否与模式匹配的方法,例如:拥有所有必填字段和正确的数据类型。我知道Mongo本身是无模式的,但是如果我可以在将数据传递给Mongo驱动程序之前验证应用程序级别的数据,那就很好。
我看过JSON-Schema。我最大的犹豫是我只能找到一个用于模式验证的Java库,我不知道我是否应该相信它,我更喜欢由Apache或Google支持的库。
我还研究过Apache Thrift,Avro和Protocol Buffers,它们不是专门的验证框架,但它们都有一个模式的概念。如果有办法捎带其中一个进行验证,我会感兴趣。
有什么建议吗?或者我应该接受Mongo的无模式,甚至不想尝试验证数据?
答案 0 :(得分:5)
在即将发布的 Mongo 3.2版中,他们添加了document validation(slides)。
您可以使用validator选项使用几乎所有mongo查询运算符($geoNear
,$near
,$nearSphere
,$text
除外,为每个集合指定验证规则,和$where
)。您可以在我的answers之一中了解有关它的更多信息。
答案 1 :(得分:3)
不确定你是否还在寻找,但是对象文档映射器(ODM)可以解决问题。
我已检查过Morphia或Spring Data - MongoDB,因为他们会将您的文档直接映射到Java类,因此会照顾您的类型安全问题。