首页 > 解决方案 > bson.timestamp.Timestamp - 什么是递增计数器?

问题描述

bson.timestamp.Timestamp有两个参数:time 和 inc。

time 显然是存储在 Timestamp 中的时间值。

什么是公司?它被描述为递增计数器,但它的用途是什么?它应该是什么价值?将其设置为 0、1 或其他任何值是否会影响存储的时间值?它会随着时间的推移而改变吗?这不是您在存储日期/时间戳时想要的吗?

标签: pythonmongodbpymongobson

解决方案


什么是公司?它被描述为递增计数器,但它的用途是什么?

BSON 类型时间戳值由一个 64 位值组成:

  • 前 32 位是一个值(自Unix 纪元time_t以来的秒数)
  • 第二个 32 位是ordinal给定秒内操作的增量。

简而言之,它的目的是对给定秒内发生的操作进行排序。即指定增量为 1,如果在一秒钟内有两个操作,则操作将是operation1, operation2

这不是您在存储日期/时间戳时想要的吗?

这是一个广泛的问题,不知道您的应用程序用例和上下文。但是,BSON 时间戳类型供内部MongoDB 使用。大多数情况下,在应用程序开发中,您会希望使用BSON 日期类型。

PyMongo 使用datetime.datetime对象来表示 MongoDB 文档中的日期和时间。

最后,值得注意的是,不要将 BSON 时间戳与来自time.time的 Python 时间戳混淆。


推荐阅读