06
MarkLogic Columnデータの変更や削除
MLについて
ニルセン太河
はじめに
本稿では、MarkLogicにドキュメントを格納した後の操作として、ドキュメントの更新、および削除方法を説明します。
ドキュメントの更新
まずは、xdmp:document-insertを使用してXMLドキュメントを登録します。登録方法の詳細は「テキストの登録と検索」の記事をご確認ください。

MarkLogicでドキュメント内容を部分更新する関数はいくつかあります。
※以下、部分更新する関数の一覧を掲載します。
関数 | 説明 |
---|---|
xdmp:node-insert-before | 指定した要素の前に要素を挿入する |
xdmp:node-insert-after | 指定した要素の後に要素を挿入する |
xdmp:node-insert-child | 指定した要素の子供として要素を挿入する |
xdmp:node-replace | 指定した要素を取り換える |
xdmp:node-delete | 指定した要素を削除する |
今回はドキュメントの部分更新にxdmp:node-replaceを使用します。登録しているデータの要素<b>
の"XMLdocument"を別名の要素<c>
の"XMLdocument_changed"に変更します。

またXMLのみならず、JSONやテキストドキュメントに対しても上表に挙げた更新関数を用いることができます。詳細はxdmp:node-replaceをご参照ください。
ドキュメントの削除
xdmp:document-insertなどで登録したドキュメントを削除するため、本稿ではxdmp:document-deleteを使います。
ドキュメントの更新で登録・更新した”/test.xml"を削除してみましょう。登録先の「Database」をDocumentsにして[Explorer]をクリックすることで現在登録されているドキュメントを参照します。
以下のクエリを実行後に[Explorer]をクリックすると、ドキュメントが削除されていることを確認できます。

まとめ
本稿の内容をまとめます。
- MarkLogicのXQueryでドキュメントを部分更新する関数を紹介しました。
- MarkLogicでは、xdmp関数を用いることでドキュメントの内容を更新できます。本稿では、xdmp:node-replaceを用いてXML要素を更新する方法を紹介しました。
- xdmp:document-deleteを用いてドキュメントを削除できます。本稿では、この関数を用いて1個のドキュメントを削除する方法を紹介しました。