MarkLogic版本:9.0-6.2
我正在使用MLCP将文档提取到STAGING DB中。对于STAGING DB中的每个文档,我需要更新FINAL DB中的多个文档。
例如,登台数据库文档中包含带有回弹指示器的电子邮件。我需要更新FINAL中具有相同电子邮件ID的集合中所有文档中的反跳指示器。
我可以使用“协调流程”来做到这一点吗?如何在content.sjs中进行编码以多次调用writer.sjs?
我尝试使用writer.sjs中的循环返回FINAL中的每个文档并应用documentInsert(基本上是writer.sjs中的FOR循环),但是行为不一致。另外,我不确定这是否是Harmonize flow的正确用法。
我试图编写自定义代码并通过REST API调用进行调用。一切正常。
请提出处理我的要求的最佳方法(协调自定义REST)。
答案 0 :(得分:1)
有一种相当不错的方法,但是在QuickStart UI中无法使用。您可以使用Final作为源数据库运行统一流,并使用cts:values作为收集器源。
您运行输入并统一流,而没有副作用,完成后,您将启动一个单独的协调流,该流将在Final数据库中查找所有唯一的电子邮件地址。您将每个唯一的电子邮件地址作为id传递(通常包含文档uri,但其他任何字符串也都可以)。您在各个步骤中收集了所有需要的内容,然后在编写器中查询并循环访问所有相关文档以根据需要设置指标。
运行流的gradle任务具有sourceDB属性,但您也可以使用Data Hub REST-api进行同样的操作:https://marklogic.github.io/marklogic-data-hub/refs/gradle-tasks/#marklogic-data-hub-flow-management-tasks
HTH!