在MongoDB中实施模式验证

Pat*_*olf 4 java mongodb

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

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

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

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

Sal*_*ali 5

在即将发布的Mongo 3.2版本中,他们添加了文档验证(幻灯片).

您可以为每个集合指定验证规则,使用验证器使用几乎所有的Mongo的查询操作选项(除$geoNear,$near,$nearSphere,$text,和$where).您可以在我的一个答案中阅读更多相关信息.