在.sjs文件中运行光学查询时,我的工作失败。 .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文件中出现问题。
答案 0 :(得分:0)
我不希望执行以下语句,因为赋值右侧的表达式正试图求值一个未赋值的变量(employeeFirstName),直到赋值发生:
let employeeFirstName = fn.replace(EmployeeFirstName, 'John', t);
您能解释一下您要做什么吗?还是(如果不代表实际代码)提供实际代码?
另外一点-result()返回一个序列。默认情况下,这是一个对象序列,每个对象的属性名称与列名称相对应。
因此,以下赋值可能会更好地从结果中获取值:
let t = fn.head(k)['example.sampleData.firstName'];
在QueryConsole中,从光学查询返回result()通常很有帮助,这样您就可以查看结果数据结构。
最后,主模块通常以值而不是赋值结尾。
希望有帮助,