日期时间范围查询
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。
在我的 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。