Я пытаюсь передать переменную в MarkLogic 8.0.4 xdmp.eval()
так:Передача переменных в xdmp.eval()
var spo = 'spo-role';
var spoRoleRes = xdmp.eval("var sec = require('/MarkLogic/security.xqy'); sec.createRole(role)",(role, spo),{"database" : xdmp.securityDatabase()})
Но я понятия не имею, как передать переменную в скрипт я хочу для запуска в базе данных безопасности. документации, кажется, отражает XQY документов см xdmp.eval-docs
Под переменного документ говорит о map:map()
объектах, которые не являются JS, но XQY понятия. То же самое для QName
Я пробовал последовательность, объект JSON, несколько версий нотации clark, но не знаю, какое пространство имен я должен использовать здесь?
Вопрос: Как передать переменную xdmp.eval()
?
Thx Д жадный, большой. На самом деле путают необходимость встраивать параметр, который вы хотите передать внутри произвольного объекта данных {} ... –
Ну, это то же самое, что и переход на карту. Но на самом деле, это еще лучше, чем последовательность сбалансированных пар QNames и значений, а затем объявление внешней переменной. TBH, я делаю это так: var data = {"external": { "foo": "bar", "baz": "buz" }} Затем все мои внешние переменные находятся под singe var называется «external», и я использую dot-notation как: external.foo –
@ hugo-koopmans: Я согласен, что документы второго param могут быть улучшены, я сделаю внутреннюю заметку об этом. – grtjn