dateTime范围查询

Thi*_*ijs 2 javascript marklogic

在我的ML8数据库中,有一些包含Dtm字段的JSON文档.您可以在下面的"数据:"中看到一个示例.我在这个字段上有一个标量类型dateTime的元素范围索引,并检查它是否有效我使用下面在'Test:'中看到的查询.结果如预期.

现在当我尝试查询这个时,我想要在某个日期之后使用Dtm字段获取所有文档,此查询不返回任何内容.您可以在"查询:"中查看下面的查询.

数据:

"Dtm": "2015-06-25T07:11:10.0Z"
Run Code Online (Sandbox Code Playgroud)

查询:

var date = xs.dateTime("2015-06-01T14:38:09.145231+02:00");
var b    = cts.elementRangeQuery("Dtm", ">", date);
var c    = cts.search(b);
c
Run Code Online (Sandbox Code Playgroud)

测试:

cts.elementValues([xs.QName("Dtm")], null, ['limit=3'], null, 1.0, null);
Run Code Online (Sandbox Code Playgroud)

测试结果:

2015-06-11T17:43:36
2015-06-11T17:43:37
2015-06-11T17:43:38
Run Code Online (Sandbox Code Playgroud)

grt*_*tjn 5

尝试使用a cts.jsonPropertyRangeQuery,并使用fn.subsequence只抓取一页结果而不是全部.例如这样:

var date = "2015-06-16T07:11:10.0Z";
var b    = cts.jsonPropertyRangeQuery("Dtm", ">", date);
var c    = fn.subsequence(cts.search(b, ['unfiltered']), 1, 10);
Run Code Online (Sandbox Code Playgroud)

HTH!

  • 范围查询的max-occurrence选项不会限制搜索结果的总数.为此目的使用fn.subsequence .. (2认同)