Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB中的JSV模式验证?_Mongodb_Schema - Fatal编程技术网

MongoDB中的JSV模式验证?

MongoDB中的JSV模式验证?,mongodb,schema,Mongodb,Schema,是否可以在MongoDB中为每个集合存储JSV和模式,然后运行MapReduce来验证文档?将无效文档插入到我可以手动修复的集合中 我需要尽可能少的外部应用程序干预,理想情况下是每天对脏文档进行MapReduces的cron,然后我将手动调查这些文档无效的原因。Map/Reduce可能不是检查架构遵从性的正确方法,因为它不会修改原始集合中的文档。因此,您不能在文档中设置一个标志,表明它已经过验证,并且可能会在每次cron运行时重新验证 建议的办法: 在文档中添加索引的已验证的字段;如果您想对模

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


我需要尽可能少的外部应用程序干预,理想情况下是每天对脏文档进行MapReduces的cron,然后我将手动调查这些文档无效的原因。

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

建议的办法:

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

您是否最终找到了解决方案?