【发布时间】:2019-06-18 09:23:59
【问题描述】:
在 mongodb 文档中https://docs.mongodb.com/manual/changeStreams/ 有一句名言:
如果时间戳是过去的,oplog 必须有足够的历史来定位与令牌或时间戳关联的操作。
因此,似乎可以恢复并获取从某个时间添加到 oplog 的所有事件。
有一个参数,似乎它必须完成我需要的东西
watch([],{startAtOperationTime: ...})
参数是时间戳,我不知道如何将特定日期转换为正确的时间戳。
【问题讨论】:
-
我相信文档中提到的“时间戳”在这里具有误导性。它不是常规时间戳,而是特定于 oplog 的时间戳。为了能够恢复变更流,您需要使用提供的恢复令牌 (docs.mongodb.com/manual/changeStreams/#resume-tokens)
-
规范中的github.com/mongodb/specifications/blob/master/source/… 是什么?并且声明startAtOperationTime、resumeAfter、startAfter都是互斥的;
-
我想出了办法。请看答案。