我想加载一个模块,该模块存储在名为"/modules/mylib.xqy"的模块下的数据库中.
目前,在需要这些模块的文件中,我正在写作
import module namespace rb2lib="http://example.com/modules/lib" at "/modules/mylib.xqy";
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个表达式在文件系统上进行查找,而不是在我的数据库上查找.有没有办法加载存储在数据库中的模块?
提前致谢!
我有一个文件夹,其中包含doc,docx,xlsx,pdf和txt文件.我使用这个XQuery将所有这些文件上传到Marklogic: -
for $d in xdmp:filesystem-directory("C:\uploads")//dir:entry
return
xdmp:document-load($d//dir:pathname,
<options xmlns="xdmp:document-load">
<uri>{concat("/documents/", string($d//dir:filename))}</uri>
<permissions>{xdmp:default-permissions()}</permissions>
<collections>{xdmp:default-collections()}</collections>
<format>binary</format>
</options>)
Run Code Online (Sandbox Code Playgroud)
我还为我的数据库安装了内容处理.现在,当我上传doc和pdf文件时,它们会转换为xml和xhtml文件.但是docx,xlsx和txt没有被转换.有人可以告诉我为什么这些文件没有被转换?
我需要在许多文件中进行搜索,但不想在查询中写入它们的名称.在我的例子中,我需要查询500个XML文件,每个文件的名称都各不相同.那么,有什么办法吗?
我可以说:
for $x in doc("ALL XML files under a specific directory")
return $x/Something
Run Code Online (Sandbox Code Playgroud)
我正在使用Ubuntu和MarkLogic5
如何完全删除MarkLogic以在Windows上重新开始?
如果我使用Windows卸载程序并重新安装MarkLogic,它仍然具有以前所做的所有数据。
在这一点上,我犯了一个错误,并且根本无法配置MarkLogic,因此我希望重新开始构建。
卸载并重新安装时,我得到以下信息:
500: Internal Server Error
SEC-NOADMIN: (err:FOER0000) User does not have admin role.
In /MarkLogic/security.xqy on line 5340
In sec:check-admin()
In /lib/status-check.xqy on line 16
In status-check()
In / on line 6
Run Code Online (Sandbox Code Playgroud) 我正在尝试连接ODBC服务器和驱动程序.我按照说明在此处设置了ODBC服务器:https://docs.marklogic.com/guide/sql/setup#id_65419并在此处设置ODBC驱动程序:https://docs.marklogic.com/guide/ sql/odbc-driver.我也试过看https://mlu.marklogic.com/ondemand/3a33410a,但我无法弄清楚为什么我继续收到此错误消息:
我在QueryConsole中有问题
当我尝试运行这个:
xquery version "1.0-ml";
declare namespace link="http://www.xbrl.org/2003/linkbase";
declare namespace bd-alg="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-algemeen";
declare namespace bd-bedr="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-bedrijven";
declare namespace bd-bedr-tuple="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-bedr-tuples";
declare namespace bd-dim-mem="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-domain-members";
declare namespace bd-dim-dim="http://www.nltaxonomie.nl/nt11/bd/20161207/validation/bd-axes";
declare namespace xbrldi="http://xbrl.org/2006/xbrldi";
declare namespace xbrli="http://www.xbrl.org/2003/instance";
declare namespace iso4217="http://www.xbrl.org/2003/iso4217";
declare namespace xlink="http://www.w3.org/1999/xlink";
let $factValues :=
for $doc in /xbrli:xbrl
let $factValue := $doc//xs:QName("bd-bedr:WageTaxDebt")
let $docId := $doc//xbrli:identifier/text()
where $docId eq "11"
return $factValue/text()
return $factValues
Run Code Online (Sandbox Code Playgroud)
引号之间的字符串是来自仅给出字符串的输入中的字符串
我收到此错误:
[1.0-ml] XDMP-NOTANODE: (err:XPTY0019) $factValue/text() -- "bd-bedr:WageTaxDebt" is not a node
Stack Trace
At line 19 column 21:
In xdmp:eval("xquery version …Run Code Online (Sandbox Code Playgroud) 我有20000个文档,每个文档包含50多个元素.我想要其中一个元素的值,所以这占了20000个值.
"问题"是它们都是相同的值,因为testdata.现在,当我在一个元素上运行cts:element-values()时,它给了我两个值.这不是我想要的,我希望所有20000都在我的屏幕上.
我添加了范围元素idex,这是搜索所需要的.这是我正在运行的查询.
declare namespace xbrli="http://www.xbrl.org/2003/instance";
declare namespace venj-bw2-i="http://www.nltaxonomie.nl/nt11/venj/20161214/dictionary/venj-bw2-data";
let $facts :=
let $searchNode := "venj-bw2-i:Income"
let $searchNode2 := "venj-bw2-i:AssetsNoncurrent"
return cts:element-values(xs:QName($searchNode))
return $facts
Run Code Online (Sandbox Code Playgroud)
并返回值
300000和310000
用这个添加文件:
for $i in 1 to 20000
return
xdmp:document-insert(fn:concat("document", $i, ".xml"),
<xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xml:lang="nl" xmlns:kvk-i="http://www.nltaxonomie.nl/nt11/kvk/20161214/dictionary/kvk-data" xmlns:venj-bw2-dm="http://www.nltaxonomie.nl/nt11/venj/20161214/dictionary/venj-bw2-domains"
xmlns:venj-bw2-i="http://www.nltaxonomie.nl/nt11/venj/20161214/dictionary/venj-bw2-data" xmlns:rj-i="http://www.nltaxonomie.nl/nt11/rj/20161214/dictionary/rj-data" xmlns:rj-t="http://www.nltaxonomie.nl/nt11/rj/20161214/dictionary/rj-tuples" xmlns:kvk-t="http://www.nltaxonomie.nl/nt11/kvk/20161214/dictionary/kvk-tuples" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:nl-cd="http://www.nltaxonomie.nl/nt11/sbr/20160610/dictionary/nl-common-data" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:venj-bw2-dim="http://www.nltaxonomie.nl/nt11/venj/20161214/dictionary/venj-bw2-axes">
<link:schemaRef xlink:type="simple" xlink:href="http://www.nltaxonomie.nl/nt11/kvk/20161214/entrypoints/kvk-rpt-jaarverantwoording-2016-nlgaap-micro.xsd"/>
<xbrli:context id="FY16d_ManagingOrSupervisoryDirector_Typed_1">
<xbrli:entity>
<xbrli:identifier scheme="http://www.kvk.nl/kvk-id">{$i}</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2016-01-01</xbrli:startDate>
<xbrli:endDate>2016-12-31</xbrli:endDate>
</xbrli:period>
<xbrli:scenario>
<xbrldi:typedMember dimension="venj-bw2-dim:ManagingOrSupervisoryDirectorNamesAxis">
<venj-bw2-dm:ManagingOrSupervisoryDirectorTypedMember>Frank Jensen</venj-bw2-dm:ManagingOrSupervisoryDirectorTypedMember>
</xbrldi:typedMember>
</xbrli:scenario>
</xbrli:context>
<xbrli:context id="FY16d">
<xbrli:entity>
<xbrli:identifier scheme="http://www.kvk.nl/kvk-id">{$i}</xbrli:identifier>
</xbrli:entity>
<xbrli:period> …Run Code Online (Sandbox Code Playgroud) 我正在使用我正在使用的代码mem:node-replace().代码如下─
let $a :=
for $i in $res
let $uri := fn:base-uri($i)
let $doc := fn:doc($uri)
return if(fn:exists($doc) eq fn:true())
then (
(
mem:node-replace($doc//*:NODE1,<NODE1>{doc($id)//*:NODE1}</NODE1>),
mem:node-replace($doc//*:NODE2,<NODE2>{$curr_date}</NODE2>)
)
)
else ()
return $a
Run Code Online (Sandbox Code Playgroud)
我能够看到值在LOG中被替换,但它没有反映到数据库中.我应该如何在我的数据库中提交/保存此节点替换?
有什么建议 ?
我是这个MarkLogic数据库的新手,直到现在我们使用它来使用XQuery对XML文档进行crud操作.
现在需求发生了一些变化,需要将json数据和文档(可能是xml/json)存储到不同的集合中,并使用Java api + spring boot执行crud操作
以下3个示例集合包含类似于mongo db的json数据
Employee Collection
-------------------
empid,
`emp id json`
Address Collecion
-----------------------
empid,
`address details json`
Documents collection
-----------------
empid ,
`document (xml/json )`
Run Code Online (Sandbox Code Playgroud)
这在MarkLogic DB中是否可行?如果是,请帮助我找到解决方法.
并且需要使用搜索API来使用Marklogic + Spring启动来过滤上述3个集合
因此,假设我已经升级了群集中的所有主机。现在,我需要升级安全性数据库。这是进行升级的部分吗?提交升级意味着什么?这是否意味着升级安全性数据库并检查已切换到较新版本的集群的有效版本?还是进行升级是完全不同的过程?
另外,是否可能其中一台主机上的软件版本未升级,而我们继续升级安全性数据库和配置。群集的有效版本是否仍将切换到较新版本?