MongoDB中的JSV模式验证?

时间:2012-06-29 00:48:55

标签: mongodb schema

是否可以在MongoDB中使用模式存储JSV,然后运行MapReduce来验证文档?将无效文档插入集合中我可以手动修复吗?

我希望尽可能少的外部应用程序干预,理想情况下每天MapReduces在脏文档上的cron然后我将调查这些文档为什么手动无效。

1 个答案:

答案 0 :(得分:1)

Map / Reduce可能不是检查架构合规性的正确方法,因为它不会修改原始集合中的文档。因此,您无法在文档中设置一个标记,表明它已经过验证,并且最终可能会在每个cron运行时重新生效。

建议的方法:

  • 在文档中添加索引validated字段;如果你想对你的模式进行版本化,这可能是一个数值。
  • 如果可能,所有文件都应在插入时验证
  • 编写一个脚本,该脚本将查找尚未验证的所有文档以匹配当前架构,并根据JSV结果更新validated字段
  • 将特定验证错误保存到另一个集合或可能的子文档中(如果添加错误报告最终导致文档移动过多,您可能需要考虑一些manual padding。)