日期时间范围查询

dateTime range query

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

现在,当我尝试查询此内容时,我想获取所有具有超过特定日期的 Dtm 字段的文档,此查询 returns 没有任何内容。您可以在 'Query:'.

查看下面的查询

数据:

"Dtm": "2015-06-25T07:11:10.0Z"

查询:

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

测试:

cts.elementValues([xs.QName("Dtm")], null, ['limit=3'], null, 1.0, null);

测试结果:

2015-06-11T17:43:36
2015-06-11T17:43:37
2015-06-11T17:43:38

尝试使用 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);

HTH!

这是实现此功能的最终代码。

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

感谢@grtjn。