2016-05-04 24 views
2

以下のコードをXQueryから変更しました。しかし、私はそれを実行すると、ドキュメントはコレクション Bではなく、コレクションBにのみ挿入されます。MarkLogic Server-Side JavaScriptでのXQueryシーケンス

declareUpdate(); 
xdmp.documentInsert(
    'mydoc.xml', 
    fn.head(xdmp.unquote(`<mydoc/>`)), 
    xdmp.defaultPermissions(), 
    ('A', 'B') 
); 

答えて

3

問題は('A', 'B')です。 XQueryでは、2つの文字列のシーケンスを表します。 JavaScriptでは、これは2つのステートメントとして解釈され、最後のものの結果を返します。この場合は'B'です。したがって、構文は有効です。そのため、エラーはありませんが、目的は異なります。一般に、JavaScriptのXQueryシーケンスに相当するのは配列です。したがって、上記のコードは

declareUpdate(); 
xdmp.documentInsert(
    'mydoc.xml', 
    fn.head(xdmp.unquote(`<mydoc/>`)), 
    xdmp.defaultPermissions(), 
    ['A', 'B'] 
); 

である必要があります。['A', 'B']の角括弧に注意してください。これは、XQueryからJavaScriptにコピー貼り付けするときに気を付けるものです。

関連する問題