服务器端 JavaScript(.sjs) 中的 Marklogic 光学查询获取作业失败

Marklogic Optic Query in Server-Side JavaScript(.sjs) getting job failed

我在 .sjs 文件中 运行ning Optic Query 时作业失败。光学查询的 .sjs 文件中似乎存在语法问题。你能帮我为 .sjs 文件中的 运行 光学查询提供正确的语法吗?请在下面找到代码片段。

const op = require('/MarkLogic/optic');
let k = op.fromView('example','sampleData').select(['firstName']).result();
let t = xs.string(k);
let employeeFirstName = fn.replace(EmployeeFirstName, 'John', t);

-这里'example'是模式名,sampleData是视图名,'firstName'是列名。它在具有 java 脚本查询类型的 marklogic qconsole 中工作正常,但在 .sjs 文件中出现问题。

我不希望执行以下语句,因为赋值右侧的表达式试图计算赋值发生前未定义的变量 (employeeFirstName):

let employeeFirstName = fn.replace(EmployeeFirstName, 'John', t);

你能否详细解释一下你正在尝试做什么,或者(如果这不能代表实际代码)提供实际代码?

还有一点 -- result() return 是一个序列。默认情况下,这是一个对象序列,每个对象都有一个 属性 名称对应于列名称。

因此,以下分配可能会更好地从结果中获取值:

let t = fn.head(k)['example.sampleData.firstName'];

在 QueryConsole 中,return 来自 Optic 查询的 result() 通常很有帮助,因此您可以看到结果数据结构。

最后,主模块通常以值而不是赋值结束。

希望对您有所帮助,