服务器端JavaScript(.sjs)中的Marklogic Optic查询失败

问题描述 投票:0回答:1

我在.sjs文件中运行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);

-here'example'是模式名称,sampleData是视图名称,'firstName'是列名。它在带有java脚本查询类型的marklogic qconsole中运行良好,但在.sjs文件中出现问题。

marklogic marklogic-9 marklogic-dhf
1个回答
0
投票

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

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

你能解释一下你正在尝试做什么或(如果那不代表实际代码)提供实际代码吗?

另一点 - result()返回一个Sequence。默认情况下,这是一个对象序列,每个对象都具有与列名对应的属性名称。

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

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

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

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

希望有所帮助,

© www.soinside.com 2019 - 2024. All rights reserved.