2

「ドキュメント」データベースとは別の、roxy でデータベースをセットアップしています。そのデータベースに構成ファイルを挿入したい。

私はこの機能を xquery ml-1.0 に持っています

xquery version "1.0-ml";



declare namespace appsetup = "http://kittens.com.au/appsetup";



declare function appsetup:setup-day0($root,$content-db){
    (: some values :)
    let $m := map:new ()
    let $_ := map:put ($m, "Kittens-Forever",xdmp:parse-dateTime("[Y0001]-[M01]-[D01]", "2999-12-31"))
    let $_ := map:put ($m, "Kittens-Never", xdmp:parse-dateTime("[Y0001]-[M01]-[D01]", "1899-12-31"))
    let $_ := map:put ($m, "Kittens-Load-Root", $root)

    return  xdmp:document-insert ("/ksys/smap", <s:map>{$m}</s:map>,
                    (xdmp:permission ("Kittens-role", "read"),
                    xdmp:permission ("Kittens-role", "update")) )

};

xdmp:document-insert、ドキュメントをデフォルトの「ドキュメント」データベースに挿入します。調べてみましたが、このドキュメントをこのデータベースにロードする方法が見つかりませんでした。xdmp:document-load ( https://docs.marklogic.com/xdmp:document-load )を使用して、ドキュメントを特定のフォレストに挿入する方法しか見つかりませんでした。

これをこのデータベースに、できれば xquery パラメータとしてロードすると言う方法はありますか?

4

1 に答える 1

3

デフォルトでは、xdmp:document-insert はドキュメント データベースに挿入されません。アプリケーションサーバー構成で定義されたデータベースに挿入します。アイデアは、データベースとのインターフェースに使用するアプリケーション サーバーがあるということです。

いくつかのメモ:

  • データベース用に構成されたアプリ サーバーを使用します。
  • または、このパラメータを持つ REST API を使用します
  • または、HTTP 書き換えルールを使用して、ユーザー、URI、またはクエリ パラメータに基づいてデータベースを動的に変更します。
  • または、xdmp:eval またはその派生物 (spawn、invoke、invoke-function) を使用します。これらにはすべて、使用するデータベースを定義するオプションがあります。

特定のサンプルについては、xdmp:invoke-function を使用することをお勧めします。

于 2016-11-24T02:36:37.240 に答える