python - bson.timestamp.Timestamp - 什么是递增计数器?
问题描述
bson.timestamp.Timestamp有两个参数:time 和 inc。
time 显然是存储在 Timestamp 中的时间值。
什么是公司?它被描述为递增计数器,但它的用途是什么?它应该是什么价值?将其设置为 0、1 或其他任何值是否会影响存储的时间值?它会随着时间的推移而改变吗?这不是您在存储日期/时间戳时想要的吗?
解决方案
什么是公司?它被描述为递增计数器,但它的用途是什么?
BSON 类型时间戳值由一个 64 位值组成:
- 前 32 位是一个值(自Unix 纪元
time_t
以来的秒数) - 第二个 32 位是
ordinal
给定秒内操作的增量。
简而言之,它的目的是对给定秒内发生的操作进行排序。即指定增量为 1,如果在一秒钟内有两个操作,则操作将是operation1
, operation2
。
这不是您在存储日期/时间戳时想要的吗?
这是一个广泛的问题,不知道您的应用程序用例和上下文。但是,BSON 时间戳类型供内部MongoDB 使用。大多数情况下,在应用程序开发中,您会希望使用BSON 日期类型。
PyMongo 使用datetime.datetime对象来表示 MongoDB 文档中的日期和时间。
最后,值得注意的是,不要将 BSON 时间戳与来自time.time的 Python 时间戳混淆。
推荐阅读
- c++ - C++ 无法解决我的问题。我有控制台错误
- c# - 将参数传递给 PostgreSQL 中的 Insert 语句
- javascript - 让 div 在点击外部时隐藏
- java - 类和对象,通过输入将旧值与新值相加,并将值传递给另一个对象~
- javascript - 使用超链接更改 style.display
- python - 用python识别句子中的副词
- java - Java, using Loop ask how many times something was repeated
- python-3.x - python3 + selenium - 遍历网站问题中的每个元素
- intellij-idea - 如何禁用新的 Angular 项目自动将文件添加到 git
- android - 某些 Android 设备中的 Firebase AUTHENTICATION_FAILED (java.io.IOException)