我想使用>,并<在Marklogic服务器我xqy页.但Marklogic转换>到>并<以<查询控制台还当我写>,并运行它打印输出作为查询>,但我想这是>唯一的,而不是>.我怎样才能做到这一点 ?
以下代码正在运行但速度极慢.直到搜索功能一切顺利.首先,搜索函数返回一个序列而不是一个数组(为什么?!).其次,数组由节点组成,我需要URI来删除.第三,deleteDocument函数接受一个字符串而不是URI的数组.
有什么更好的方法呢?我需要删除年份+旧文档.
在这里我使用xdmp.log而不是document.delete只是安全.
var now = new Date();
var yearBack = now.setDate(now.getDate() - 365);
var date = new Date(yearBack);
var b = cts.jsonPropertyRangeQuery("Dtm", "<", date);
var c = cts.search(b, ['unfiltered']).toArray();
for (i=0; i<fn.count(c); i++) {
xdmp.log(fn.documentUri(c[i]), "info");
};
Run Code Online (Sandbox Code Playgroud) 嗨,我在MarkLogic中使用了cts搜索和XPath查询,并且还使用了多个参数。我需要同时捕获大写字母和小写字母(在XML搜索中)。
样本XML
<PP uri="/2000_4_174.xml">
<P name="jur" value="ht"/>
<P name="sitting" value="17 AUGUST"/>
<P name="startpage" value="174"/>
</PP>
Run Code Online (Sandbox Code Playgroud)
我的XQuery
let $attr1 := "JUR"
let $attr2 := "startpage"
let $value1 := "ht"
let $value2 := "174"
let $uri := //PP[P[@name=$attr1 and @value=$value1] and P[@name=$attr2 and @value=$value2]]/@uri
return $uri
Run Code Online (Sandbox Code Playgroud)
当$ attr1值为jur时,查询成功运行,但是我想提供大写或小写形式的值。请让我知道任何选择。
注意:更改归类cts后,搜索可以同时使用大写和小写字母,但XPath查询不起作用。
假设我有一个100字符串元素的列表,我希望随机返回50个随机文本字符串.
我试着这样做:
let $list := ("a","b",..."element number 100")
return xdmp:random(100)
Run Code Online (Sandbox Code Playgroud)
此查询返回一个字符串,我想返回50个彼此不同的字符串.
我试图通过一个例子来理解同期和非阻塞参数.如果我是对的,请告诉我.
假设我们在时间戳= 10处发生事务T1,T2,T3.T1
,T2,T3分别在30,40,50处提交.如果查询事务发生在35:
for contemporaneous:查询读取T1提交的版本,并保持T2和T3等待读取完成.
对于非阻塞:只有在所有3个事务T1,T2,T3都提交到50后才能读取查询.
var marklogic=require('marklogic');
var ins=marklogic.createDatabaseClient({'host':'localhost','port':'7010','user':'admin','password':'admin',});
var qb=marklogic.queryBuilder;
ins.documents.query(
qb.propertiesFragment(
qb.value("Author","Akhilesh Sabbisetti"))
).result(function(matches){
matches.forEach(function(match){
console.log(match.uri);
});
});
Run Code Online (Sandbox Code Playgroud)
上面的代码应该只适用于文档的属性,但它不是那样的.我得到了无关紧要的结果.请更正我的代码....
我知道如何在xml文件中插入文档,但不知道如何将xquery文件存储到Marklogic Module数据库中。我要存储xquery文件以设置计划任务的原因。我在下面有一个xquery文件。提前致谢。
declare namespace...
let $uris := cts:element-value(...code...),
cts:and-query((...code...))
let $result := {<stats><top-docs>
for $uri in $uris[1 to 10]
...more code here..
}</top-docs></stats>
let $permissions := (xdmp:permission(..give permissions here.))
let $_ := xdmp:log("Inserting Stats Document")
return xdmp:document-insert("/acitivity/stats.xml",$result, $permissions))
Run Code Online (Sandbox Code Playgroud) 试图根据不同的过滤器和一个集合计算汽车数量.即使我们看到多辆汽车符合要求,查询也会返回0.
fn:count(cts:search(fn:collection("com.cars"), cts:and-query((
cts:element-word-query(xs:QName("exteriorColor"), "red", "wildcarded" ),
cts:element-word-query(xs:QName("interiorColor"), "gray", "wildcarded" )
cts:element-word-query(xs:QName("powerSteering"), json:null(), "wildcarded" )
))))
Run Code Online (Sandbox Code Playgroud)
测试数据:
{
"id":1
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":2
"carName":"Toyoto",
"exteriorColor": "blue",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":3
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": "yes"
}
{
"id":4
"carName":"Toyoto",
"exteriorColor": "white",
"interiorColor": "gray",
"powerStreering": null
}
{
"id":5
"carName":"Toyoto",
"exteriorColor": "red",
"interiorColor": "gray",
"powerStreering": null
}
Run Code Online (Sandbox Code Playgroud) 我想获取所有路径范围索引值等于同一文档中另一个值的所有文档(例如:/ metadata / book-title = / metadata / chapter-title)。有办法吗?
marklogic ×10
xquery ×5
marklogic-8 ×2
javascript ×1
list ×1
marklogic-9 ×1
mvcc ×1
transactions ×1
xpath ×1