0

是否可以将 JSV 存储在 MongoDB 中,并为每个集合提供模式,然后运行 ​​MapReduce 来验证文档?将无效文档插入我可以手动修复的集合中?

我希望尽可能少的外部应用程序干预,最好是每天 MapReduces 对脏文档的 cron,然后我将手动调查为什么这些文档无效。

4

1 回答 1

1

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

建议的方法:

  • validated为您的文档添加索引字段;如果您想对模式进行版本控制,这可能是一个数值。
  • 如果可能,所有文件都应在插入时进行验证
  • 编写一个脚本,该脚本将查找所有未经过验证以匹配当前模式的文档,并validated根据 JSV 结果更新该字段
  • 将特定的验证错误保存到另一个集合或可能的子文档中(如果添加错误报告最终会触发过多的文档移动,您可能需要考虑一些手动填充)。
于 2012-06-29T06:59:10.537 回答