Xquery 如何获得基于最新日期的文档

Xquery 如何获得基于最新日期的文档,xquery,marklogic,Xquery,Marklogic,一般来说,我对Marklogic和xquery都很陌生。我们有一个以截止日期为节点的文档集合。有人能帮我用xquery根据截止日期获取最新文档吗?每个文档看起来像 <document> <Id>blah<Id> <DeadlineDate>2012-04-04T21:00:00</DeadLineDate> 废话 2012-04-04T21:00:00 您需要在DeadlineDate上设置范围索引,类型为dateTime let

一般来说,我对Marklogic和xquery都很陌生。我们有一个以截止日期为节点的文档集合。有人能帮我用xquery根据截止日期获取最新文档吗?每个文档看起来像

<document>
<Id>blah<Id>
<DeadlineDate>2012-04-04T21:00:00</DeadLineDate>

废话
2012-04-04T21:00:00

您需要在
DeadlineDate
上设置范围索引,类型为
dateTime

let $latest := cts:element-values(
  xs:QName('DeadlineDate'), ('document', 'descending', 'limit=1'))
return /document[DeadLineDate eq $latest]
或者您也可以使用以下表格:

(for $n in /document[DeadLineDate]
 order by $n/DeadLineDate descending
 return $n)[1]

我认为第一个通常会更快,但这可能值得测试。

请提供一些有效的XML作为输入。您实际使用了XQuery集合吗?您希望文档具有最新的截止日期(预计会是第一个截止日期)?