我尝试过下面提到的 XQuery 。
declare variable $path as xs:string :="D:\Mongo\";
let $uri :="/MJ/1932/Vol1/Part1/387.xml"
let $x := fn:normalize-space(fn:replace($uri,"/"," "))
for $i in fn:tokenize($x, " ")
let $j := fn:concat($path,$i)
return($j)
Run Code Online (Sandbox Code Playgroud)
实际产量
D:\Mongo\MJ
D:\Mongo\1932
D:\Mongo\Vol1
D:\Mongo\Part1
D:\Mongo\387.xml
Run Code Online (Sandbox Code Playgroud)
预期产出
D:\Mongo\MJ
D:\Mongo\MJ\1932
D:\Mongo\MJ\1932\Vol1
D:\Mongo\MJ\1932\Vol1\Part1
D:\Mongo\MJ\1932\Vol1\Part1\387.xml
Run Code Online (Sandbox Code Playgroud)
请建议我如何更改动态变量值。
我们正在构建一个以 ML 作为后端数据库的企业应用程序。要求之一是在不同文档中查找 XML 中特定元素的不同值。
我可以使用结构化查询/组合查询获取不同的entity_type吗
以下所有文档都是实体集合的一部分:
文件1
<xml>
<entities>
<entity_name>Imprezza</entity_name>
<entity_type>Car</entity_type>
<entity_color>Red</entity_color>
<entities>
<xml>
Run Code Online (Sandbox Code Playgroud)
文件2
<xml>
<entities>
<entity_name>Ducati</entity_name>
<entity_type>Bike</entity_type>
<entity_color>White</entity_color>
<entities>
<xml>
Run Code Online (Sandbox Code Playgroud)
文件3
<xml>
<entities>
<entity_name>Lancia</entity_name>
<entity_type>Car</entity_type>
<entity_color>Red</entity_color>
<entities>
<xml>
Run Code Online (Sandbox Code Playgroud)
文件4
<xml>
<entities>
<entity_name>Scania</entity_name>
<entity_type>Truck</entity_type>
<entity_color>Black</entity_color>
<entities>
<xml>
Run Code Online (Sandbox Code Playgroud)
要求:给我集合中所有不同的entity_type
结果:汽车、自行车、卡车
PS:需要在Java层获取结果。我们目前有一个 API,可以根据输入生成 MarkLogic 组合查询(结构化查询 + 选项查询)。我可以使用结构化查询/组合查询获取不同的实体吗?
我试图在插入文档后立即阅读该文档。当我尝试阅读文档时,我认为文档的插入正在进行中。请让我知道如何使用下面的代码片段获得结果。执行下面的代码,出现错误 'Cannot read property 'xpath' of null' 。
declareUpdate();
xdmp.documentInsert("abc.xml",cts.doc("xyz.xml"));
return cts.doc("abc.xml").xpath("/root");
Run Code Online (Sandbox Code Playgroud) 我正在根据时间戳从米数据库中提取 uri 列表。这是代码 -
cts:uris( (), (), cts:and-query((
cts:collection-query("meters") ,
cts:element-value-query(xs:QName("mt:period"), "raw"),
cts:element-range-query( xs:QName("mt:end-time"), ">=", xs:dateTime("2018-02-17T05:37:00") ),
)
)
))
Run Code Online (Sandbox Code Playgroud)
但它包括keystore-raw.xml这不是我想要的结果集中的文件?如何将其从结果集中删除。父元素是keystore-metrics并且还具有诸如 之类的元素keystore-metric。我不想要任何 for 循环。
标记逻辑 9.0.8.2
我们的数据库中有大约 2000 万条 XML 格式的记录。
为了处理方面,我们在给定元素上创建了 element-rage-index。
它工作正常,所以没有问题。
真正的问题是,我们现在想要在系统测试(ST)、UAT、生产等不同环境中部署相同的代码。
在部署代码之前,我们必须确保给定的索引存在。所以我们提前1/2天执行。
我们注意到,在完成完整索引之前,我们无法部署我们的代码,否则它会开始显示这样的错误。
<error:code>XDMP-ELEMRIDXNOTFOUND</error:code>
<error:name/>
<error:xquery-version>1.0-ml</error:xquery-version>
<error:message>No element range index</error:message>
<error:format-string>XDMP-ELEMRIDXNOTFOUND: cts:element-reference(fn:QName("","tc"), ("type=string", "collation=http://marklogic.com/collation/")) -- No string element range index for tc collation=http://marklogic.com/collation/ </error:format-string>
Run Code Online (Sandbox Code Playgroud)
一旦索引完成,相同的代码将按预期运行。
特别是在 ST/UAT 中,如果我们得到未完成索引的部分数据,我们就可以了。
有什么办法可以做到这一点吗?否则我们会浪费太多时间来等待索引完成。
每次我们提出依赖新索引的新功能时都会发生这种情况
我是 Marklogic 学习的初学者。我尝试通过互联网检查差异,但我什么也没看到。对不起,如果这是一个愚蠢的问题。实际上有什么区别?
我在互联网上搜索并没有发现任何关于这让我重新思考“可能我们无法将数据插入到 Marklogic 中已经存在的文件中”。但是,我想在这里验证我知道使用 curl PUT 命令我们可以更新或创建一个新文档我使用以下查询创建了一个 json
**curl -v -X PUT \
--digest --user rest-writer:x \
-d'{"recipe": {"name" :"Apple pie", "fromScratch":true, "ingredients":"The Universe"}}' \
'http://localhost:8011/LATEST/documents?uri=/example/recipe.json'**
Run Code Online (Sandbox Code Playgroud)
创建此后,我想在同一文件 /example/recipe.json 中添加另一个配方,如下所示
"name" :"Chocolate Cake", "fromScratch":yes, "ingredients":"Coca"
Run Code Online (Sandbox Code Playgroud)
我如何在 Marklogic 中使用 curl 来实现这一点?
在用JavaScript编写的 MarkLogic REST 服务中,我需要验证格式为“2019-12-01T19:54:25.000265Z”或“2019-12-01T19:54:25”的日期时间值,以便能够xs.dateTime()在我用于处理数据的代码的另一部分。
输入像字符串一样输入,我需要验证它的格式是否正确并具有有效值。
CORB 和 MLCP MarkLogic 之间有什么区别吗?
我看到他们做同样的工作。你在什么情况下使用这个和那个?
“集合不需要成员文档符合任何 URI 模式”。我在 MarkLogic 文档上看到的声明。这实际上意味着什么?
marklogic ×10
marklogic-8 ×2
curl ×1
datetime ×1
indexing ×1
javascript ×1
marklogic-10 ×1
mlcp ×1
rest ×1
restapi ×1
validation ×1
xquery ×1