MarkLogic:DHF为暂存数据库中的每个文档协调将多个文档写入最终数据库的流程

MarkLogic:DHF为暂存数据库中的每个文档协调将多个文档写入最终数据库的流程,marklogic,marklogic-9,marklogic-dhf,Marklogic,Marklogic 9,Marklogic Dhf,MarkLogic版本:9.0-6.2 我正在使用MLCP将文档摄取到暂存数据库中。对于STAGING DB中的每个文档,我需要更新最终DB中的多个文档 例如,staging DB文档包含带有回退指示器的电子邮件。我需要在FINAL集合中更新具有相同电子邮件id的所有文档中的反弹指示器 我可以用协调流来做这个吗?如何在content.sjs中编写代码以多次调用writer.sjs 我尝试在writer.sjs中使用一个循环以最终形式返回每个文档并应用documentInsert(基本上是writ

MarkLogic版本:9.0-6.2

我正在使用MLCP将文档摄取到暂存数据库中。对于STAGING DB中的每个文档,我需要更新最终DB中的多个文档

例如,staging DB文档包含带有回退指示器的电子邮件。我需要在FINAL集合中更新具有相同电子邮件id的所有文档中的反弹指示器

我可以用协调流来做这个吗?如何在content.sjs中编写代码以多次调用writer.sjs

我尝试在writer.sjs中使用一个循环以最终形式返回每个文档并应用documentInsert(基本上是writer.sjs中的FOR循环),但行为并不一致。另外,我不确定这是否是协调流的正确用法

我试图编写自定义代码并通过RESTAPI调用进行调用。这是预期的工作


请建议处理我的需求的最佳方法(协调与自定义REST)。

有一种相当优雅的方法可以做到这一点,但在QuickStart UI中无法实现。您可以使用Final作为源数据库运行协调流,并使用cts:values作为收集器源

您运行输入并协调流而没有副作用,一旦完成,您将启动一个单独的协调流,该流将在最终数据库中查找所有唯一的电子邮件地址。您将每个唯一的电子邮件地址作为id传递(通常包含文档uri,但任何其他字符串也可以)。您可以在各个步骤中收集所有需要的内容,然后在writer中查询并循环所有相关文档,以根据需要设置指标

运行流的gradle任务具有sourceDB属性,但您也可以使用Data Hub REST api执行相同的操作: