MarkLogic 服务器端中等效的 XQuery 序列 JavaScript
XQuery sequence equivalent in MarkLogic Server-Side JavaScript
我从一些 XQuery 中改编了下面的代码。但是,当我 运行 它时,它只将文档插入集合 B
,而不是集合 A
和 B
作为等价物XQuery 可以。
declareUpdate();
xdmp.documentInsert(
'mydoc.xml',
fn.head(xdmp.unquote(`<mydoc/>`)),
xdmp.defaultPermissions(),
('A', 'B')
);
问题是('A', 'B')
。在 XQuery 中表示两个字符串的序列。在 JavaScript 中,这被解释为两个语句,returns 是最后一个语句的结果,在本例中是 'B'
。因此语法是有效的——这就是没有错误的原因——但意图不同。通常,JavaScript 中 XQuery 序列的等价物是一个数组。因此上面的代码应该是
declareUpdate();
xdmp.documentInsert(
'mydoc.xml',
fn.head(xdmp.unquote(`<mydoc/>`)),
xdmp.defaultPermissions(),
['A', 'B']
);
注意 ['A', 'B']
上的方括号。从 XQuery 复制粘贴到 JavaScript.
时需要注意这一点
我从一些 XQuery 中改编了下面的代码。但是,当我 运行 它时,它只将文档插入集合 B
,而不是集合 A
和 B
作为等价物XQuery 可以。
declareUpdate();
xdmp.documentInsert(
'mydoc.xml',
fn.head(xdmp.unquote(`<mydoc/>`)),
xdmp.defaultPermissions(),
('A', 'B')
);
问题是('A', 'B')
。在 XQuery 中表示两个字符串的序列。在 JavaScript 中,这被解释为两个语句,returns 是最后一个语句的结果,在本例中是 'B'
。因此语法是有效的——这就是没有错误的原因——但意图不同。通常,JavaScript 中 XQuery 序列的等价物是一个数组。因此上面的代码应该是
declareUpdate();
xdmp.documentInsert(
'mydoc.xml',
fn.head(xdmp.unquote(`<mydoc/>`)),
xdmp.defaultPermissions(),
['A', 'B']
);
注意 ['A', 'B']
上的方括号。从 XQuery 复制粘贴到 JavaScript.