首页 文章

Azure DocumentDb“高水位线”/时间戳

提问于
浏览
2

我希望实现一个偶尔从DocumentDb中提取所有“新”记录的进程,其中new是“自上次运行进程以来添加或修改的所有文档” .

SQL Server为此提供了rowversion,保证了数据库中所有行和列的唯一且单调递增 .

我看到DocumentDb有_ts,它(根据文档)用作Azure搜索索引的高水位标记,但是它是如何工作的?如果在读取的同时插入多个文档,则所有文档都可能具有相同的_ts值 . 在下一次阅读时,如果与_ts的比较严格大于,则会遗漏一些文件;如果它大于或等于,则某些文档将被第二次拉出 .

_ts可以安全使用吗?

1 回答

  • 1

    _ts 属性特定于文档,而不是文档集合 . 它表示特定文档更新的时间(自1970年1月1日起以秒为单位) .

    _ts 属性不会在集合中的所有文档中给出高水位标记 . 每个文档都有自己独立的 _ts 属性(可能与另一个文档的 _ts 属性具有相同的值) .

    有关详细信息,请参阅this answer .

相关问题