为什么在MongoDB ID中有一个增量计数器?

问题描述 投票:0回答:1

specification指出某行的ID,例如在Python中使用

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
res = mycol.insert_one({"name": "John", "address": "Highway 37"})
print(res.inserted_id)

是:

一个4字节的时间戳记值,代表ObjectId的创建,以Unix时代以来的秒数为单位5字节随机值3字节递增计数器,已初始化为随机值

自:

  • 时间戳值仅具有秒精度(而不是毫秒或微秒)
  • 此后有一个随机数

我了解ID上的字典顺序无用:确实not有助于知道某个记录是否已记录在另一个记录之前(例如:同一秒内有两个记录)。

问题:出于什么原因,在先前字节不是增量字节的ID的上下文中,“增量计数器”会有用吗?

database mongodb uuid id
1个回答
0
投票

问题:出于什么原因,在先前字节不是增量字节的ID的上下文中,“增量计数器”有用吗?

是为了独特。如果您不覆盖它,则ObjectId是默认索引,因此计数器可确保每个记录始终是唯一的。

© www.soinside.com 2019 - 2024. All rights reserved.