只需尝试一下并获得最新版本,而不是空序列。这是我对您要执行的操作的理解:
您已将时间戳设置为当前时间 ( t ),然后插入文档(在时间t + m 处),然后在同一 URI 处插入文档的新版本(在时间t + n处)。您现在想要从时间t + m检索文档。
问题是您为读取请求指定时间戳的方式:
<timestamp>{xdmp:request-timestamp()-1}</timestamp>
您要求 MarkLogic 将时钟倒回一格,并给您当时存在的文档。但是,时间戳确实与时钟时间相关。它们不仅会在数据库状态更改时增加。来自 MarkLogic 的管理员指南:
滴答声以每秒 10,000,000 个滴答声计算
因此,通过从当前时间戳中减去一个,您要求返回大约 1/10,000,000 秒。
如果您知道要查询数据库时的挂钟时间,则可以使用xdmp:wallclock-to-timestamp
.
顺便说一句,您还在 Stack Overflow 上提出了一个关于如何跟踪文档的多个版本的问题。我想提醒您不要将时间点查询视为其中之一,如果这是您的想法的话。为此,文档库服务或双时态文档是更好的解决方案。有关为什么不使用 PIT 查询进行版本控制的更多信息,请参阅管理员指南的合并概述部分,特别是“禁用合并的危险”和“合并将改变分数”部分。