使用手动指定的_id插入mongodb集合

时间:2016-02-22 21:34:38

标签: mongodb

假设我在mongodb中有一个集合,并且集合中的对象有一个_id,它是我以一种完全在mongoDB外部随机方式选择的ObjectID,例如从ObjectID 0000 ... 0000开始并递增10000,或者只是使用随机数生成器来生成ObjectID。

假设我接着将另一个项目添加到集合中,但我没有为新对象设置ObjectID,并且对让系统选择一个感到满意。系统是否会选择已经是集合一部分的ObjectID?

如果它是相关的,我使用java API和python API来执行此操作。

1 个答案:

答案 0 :(得分:0)

_id始终是唯一的。在_id字段上有一个隐含的唯一主索引。

请放心,MongoDB不会选择已经采用的_id字段。

_id字段也是一个12字节的十六进制字符串,其中包含:

  • 4个字节用于日期时间戳。
  • 3个字节是MAC地址。
  • 2个字节是进程ID。
  • 3个字节是计数器。

因此,如果MongoDB在集合中为您的文档选择_id,它肯定会与您集合中其他文档中的其他_id字段不同。

希望这有帮助。