MarkLogic服务器端JavaScript中的XQuery序列等价物

MarkLogic服务器端JavaScript中的XQuery序列等价物,javascript,xquery,marklogic,Javascript,Xquery,Marklogic,我根据一些XQuery修改了下面的代码。但是,当我运行它时,它只将文档插入集合B,而不是像等效的XQuery那样插入集合A和B declareUpdate(); xdmp.documentInsert( 'mydoc.xml', fn.head(xdmp.unquote(`<mydoc/>`)), xdmp.defaultPermissions(), ('A', 'B') ); declareUpdate(); xdmp.documentInsert( “mydoc

我根据一些XQuery修改了下面的代码。但是,当我运行它时,它只将文档插入集合
B
,而不是像等效的XQuery那样插入集合
A
B

declareUpdate();
xdmp.documentInsert(
  'mydoc.xml',
  fn.head(xdmp.unquote(`<mydoc/>`)),
  xdmp.defaultPermissions(),
  ('A', 'B')
);
declareUpdate();
xdmp.documentInsert(
“mydoc.xml”,
fn.头(xdmp.unquote(``)),
xdmp.defaultPermissions(),
(‘A’、‘B’)
);
问题在于
('A','B')
。在XQuery中,表示两个字符串的序列的。在JavaScript中,它被解释为两条语句并返回最后一条语句的结果,在本例中为
'B'
。因此,语法是有效的,这就是为什么没有错误,但意图是不同的。通常,JavaScript中XQuery序列的等价物是数组。因此,上面的代码应该是

declareUpdate();
xdmp.documentInsert(
  'mydoc.xml',
  fn.head(xdmp.unquote(`<mydoc/>`)),
  xdmp.defaultPermissions(),
  ['A', 'B']
);
declareUpdate();
xdmp.documentInsert(
“mydoc.xml”,
fn.头(xdmp.unquote(``)),
xdmp.defaultPermissions(),
['A','B']
);
注意
['A',B']
上的方括号。当从XQuery复制粘贴到JavaScript时,需要注意这一点