Javascript 日期时间范围查询

Javascript 日期时间范围查询,javascript,marklogic,Javascript,Marklogic,在我的ML8数据库中,有一些JSON文档包含Dtm字段。您可以在下面的“数据:”中看到一个示例。 我在这个字段上有一个标量类型dateTime的元素范围索引,为了检查它是否有效,我使用了您在下面的“Test:”中看到的查询。结果如预期 现在,当我试图查询它时,我想获取Dtm字段超过某个日期的所有文档,这个查询不返回任何结果。您可以在下面的“查询:”中看到查询 数据: "Dtm": "2015-06-25T07:11:10.0Z" 查询: var date = xs.dateTime("2015

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

现在,当我试图查询它时,我想获取Dtm字段超过某个日期的所有文档,这个查询不返回任何结果。您可以在下面的“查询:”中看到查询

数据:

"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
测试:

测试结果:

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);

这是使其工作的最终代码

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。

谢谢。尝试这样做:cts.jsonPropertyRangeQuery(“Dtm”,“>”,xs.dateTime(date),[“max-ocurses=1”);继续命中树缓存已满或使我的浏览器窗口崩溃。范围查询上的“最大发生次数”选项不会限制搜索结果的总数。为此,请使用fn.subsequence。它看起来像是仅在查询之后才对子序列进行限制,因此它会一直超时。这是推荐的方法(请参见的第二个示例),并且它需要一个迭代器,因此它应该首先计算所有值。摆脱max occurs,运行unfiltered,这可能会有所帮助..确定:)请随意复制它。这使你的回答有点多余,但这就是我问的原因;-)
var date = "2015-06-16T07:11:10.0Z";
var b    = cts.jsonPropertyRangeQuery("Dtm", ">", date);
var c    = fn.subsequence(cts.search(b, ['unfiltered']), 1, 10);