mongodb连续ids的可能性?

时间:2015-12-27 03:14:16

标签: node.js mongodb

我目前正在使用mongodb开发节点应用。我正在查找项目的值,如果它存在,删除它,如果没有,则写入值(基本上是一个切换)。

我刚刚做了这4次,我得到了以下自动生成的_id:

"_id" : ObjectId("567f566206eedcc838ce86a0")
"_id" : ObjectId("567f566206eedcc838ce86a1")
"_id" : ObjectId("567f566206eedcc838ce86a2")
"_id" : ObjectId("567f566206eedcc838ce86a3")

我正在使用Windows,如果它有所作为。根据我对mongo id的理解,这些id应该以相当随机的方式生成,那么我怎样才能获得3个连续的id? (无论如何我都不会改变ID。)

1 个答案:

答案 0 :(得分:1)

MongoDB ID实际上并不是随机的,遵循非常严格的规则:

” ObjectId是一个12字节的BSON类型,使用:

构造

一个4字节的值,表示自Unix时代以来的秒数,
一个3字节的机器标识符,
一个2字节的进程ID,和
一个3字节的计数器,以随机值开始。“

https://docs.mongodb.org/manual/reference/object-id/

虽然最后一个值是随机的,假设你几乎在同一时间完成了这一代,但这并不是非常不可能。