我已经在MarkLogic中使用JavaScript在视图上创建了参数化光学计划。如何在调用计划时将参数传递给计划?

时间:2019-06-07 15:59:44

标签: marklogic marklogic-9

这是我创建的可以接受参数emplId过滤视图结果的计划:

declareUpdate();
const op = require('/MarkLogic/optic');

const EmployeePlanSQL = op.fromView('employees', 'EmployeeRecordsView',"")
     .select(['employeeId', 'employeeName', 'pnone'])
     .where(op.eq(op.col('employeeId'), op.param('emplId')))
     .orderBy('employeeId');;
const planObj = EmployeePlanSQL.export();

xdmp.documentInsert("emplRatePlanSQL.json", planObj);

这是我使用JavaScript调用它的方式:

op.import(cts.doc('emplRatePlanSQL.json').toObject())
  .result();

在调用此计划时如何传递参数emplId?

2 个答案:

答案 0 :(得分:2)

result()方法的可选第二个参数指定参数绑定,如下所示:

.result('object', {emplId: 1});

有关更多信息,请参见:

http://docs.marklogic.com/guide/app-dev/OpticAPI#id_35758

http://docs.marklogic.com/AccessPlan.prototype.result

希望有帮助,

答案 1 :(得分:1)

参数化查询计划时,请在.result()的第二个参数中指定参数值:

.result(null, { emplId: 1234 });

an example in the Optic API guide