Относительно проблемы обновления памяти MarkLogic - PullRequest
0 голосов
/ 23 мая 2018

Я создаю документ и обновляю его в памяти.Но это не обновление документа, то есть не удаление элемента file-text из созданного документа.Ниже приведен код.Можете ли вы дать мне знать, что мне здесь не хватает.

xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
import module namespace mem = "http://xqdev.com/in-mem-update" at   "/MarkLogic/appservices/utils/in-mem-update.xqy";

let $createArchDoc := xdmp:document-insert("/abc.xml",doc("/xyz.xml"))
let $createArchDoc := mem:node-delete($createArchDoc/document/file-text)
return $createArchDoc/document

Я тоже пробовал

let $createArchDoc := xdmp:document-insert("/abc.xml",doc("/xyz.xml"))
let $myNewDoc := doc("/abc.xml")
let $myNewDoc := mem:node-delete($myNewDoc/document/file-text)
return $myNewDoc/document

1 Ответ

0 голосов
/ 23 мая 2018

Библиотека in-mem-update предназначена для использования в структурах, которые еще не сохранены в базе данных.Сначала вам нужно будет применить вызовы mem и продолжить после.

Кроме того, xdmp:document-insert возвращает пустую последовательность, поэтому $createArchDoc будет пустым в обоих случаях.

Вы, наверное, смотритечто-то вроде следующего (не проверено):

xquery version "1.0-ml";

import module namespace mem = "http://xqdev.com/in-mem-update" at   "/MarkLogic/appservices/utils/in-mem-update.xqy";

let $createArchDoc := doc("/xyz.xml")
let $createArchDoc := mem:node-delete($createArchDoc/document/file-text)
let $_ := xdmp:document-insert("/abc.xml",$createArchDoc)
return $createArchDoc/document

HTH!

...