我目前正在使用mongodb开发节点应用。我正在查找项目的值,如果它存在,删除它,如果没有,则写入值(基本上是一个切换)。
我刚刚做了这4次,我得到了以下自动生成的_id:
"_id" : ObjectId("567f566206eedcc838ce86a0")
"_id" : ObjectId("567f566206eedcc838ce86a1")
"_id" : ObjectId("567f566206eedcc838ce86a2")
"_id" : ObjectId("567f566206eedcc838ce86a3")
我正在使用Windows,如果它有所作为。根据我对mongo id的理解,这些id应该以相当随机的方式生成,那么我怎样才能获得3个连续的id? (无论如何我都不会改变ID。)
答案 0 :(得分:1)
MongoDB ID实际上并不是随机的,遵循非常严格的规则:
” ObjectId是一个12字节的BSON类型,使用:
构造一个4字节的值,表示自Unix时代以来的秒数,
一个3字节的机器标识符,
一个2字节的进程ID,和
一个3字节的计数器,以随机值开始。“
https://docs.mongodb.org/manual/reference/object-id/
虽然最后一个值是随机的,假设你几乎在同一时间完成了这一代,但这并不是非常不可能。