Marklogic Java客户端Api中的ApplyTransferorMListener.ApplyResult?

Marklogic Java客户端Api中的ApplyTransferorMListener.ApplyResult?,marklogic,java,Marklogic,Java,ApplyTransferMLListener方法和ApplyResult似乎有两个值(即REPLACE和IGNORE),如中所述,定义如下是用转换的结果替换每个文档,还是用每个文档作为输入运行转换,但忽略结果。 我的代码,它实际上做的是从MarkLogicDB中获取内容并应用转换模块。下面我提到了ApplyTransformListenersnippet: ServerTransform transform = new ServerTransform("rest");

ApplyTransferMLListener方法
和ApplyResult
似乎有两个值(即
REPLACE
IGNORE
),如中所述,定义如下
是用转换的结果替换每个文档,还是用每个文档作为输入运行转换,但忽略结果。

我的代码,它实际上做的是从MarkLogicDB中获取内容并应用转换模块。下面我提到了
ApplyTransformListener
snippet:

 ServerTransform transform = new ServerTransform("rest");
            ApplyTransformListener transformListener = new ApplyTransformListener()
              .withTransform(transform)
              .withApplyResult(ApplyResult.REPLACE)
我的转换模块(即
rest
)如下所示

function patt(context, params, content)
{ 
  var transformed = {};
  transformed.Update= {"New" : "Element"};
  transformed.Original= content;
  xdmp.nodeReplace(content, transformed);
};
exports.transform = patt;
ServerTransform transform = new ServerTransform("rest");
                ApplyTransformListener transformListener = new ApplyTransformListener()
                  .withTransform(transform)
                  .withApplyResult(ApplyResult.IGNORE)
通过使用上述代码,转换模块将获取内容并应用
xdmp.nodeReplace(content,transformed)

我的问题:

甚至我在
applyresult
中也这样应用了
IGNORE

function patt(context, params, content)
{ 
  var transformed = {};
  transformed.Update= {"New" : "Element"};
  transformed.Original= content;
  xdmp.nodeReplace(content, transformed);
};
exports.transform = patt;
ServerTransform transform = new ServerTransform("rest");
                ApplyTransformListener transformListener = new ApplyTransformListener()
                  .withTransform(transform)
                  .withApplyResult(ApplyResult.IGNORE)
它仍然在应用变换模块的变化。为什么

它必须正确地忽略转换模块的结果(即文档中的原始数据不应正确地更改)

如果我错了,请纠正我


谢谢

当您致电
xdmp.nodeReplace
您正在更改文档时,我们不会阻止您这样做。
IGNORE
选项适用于这样的场景,您希望控制自己的修改,甚至可能是对其他文档的修改


使用
REPLACE
转换函数将返回要替换文档注释的新文档。见此。

忽略不等同于干运行。相反,
withApplyResult
控制是或MarkLogic自动用转换函数返回的内容替换原始内容,还是丢弃(忽略)转换函数返回的内容;当使用“忽略”时,变换函数应用于数据库的任何更改仍然“保持不变”