将文档插入特定数据库 MarkLogic

Insert a document into a particular database MarkLogic

我正在使用 roxy 设置一个数据库,它与 "documents" 数据库不同。我想将配置文件插入该数据库。

我在 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 将文档插入默认的 "documents" 数据库。我环顾四周,找不到将此文档加载到此数据库中的方法。我只找到了一种使用 xdmp:document-load (https://docs.marklogic.com/xdmp:document-load).

将文档插入特定林的方法

有没有办法让我把这个东西加载到这个数据库中,最好只是作为 xquery 参数?

xdmp:document-insert 默认情况下不会插入文档数据库。它插入到应用程序服务器配置中定义的数据库中。这个想法是您有一个用于与数据库交互的应用程序服务器。

一些注意事项:

  • 使用为您的数据库配置的应用服务器。
  • 或者使用具有此参数的 REST API
  • 或者使用 HTTP 重写规则根据用户、URI 或查询参数动态更改数据库
  • 或使用 xdmp:eval 或其衍生产品(spawn、invoke、invoke-function),它们都可以选择定义要使用的数据库。

对于您的特定示例,我建议您使用 xdmp:invoke-函数。