【问题标题】:MongoDB IDs - will two collections have the same ids? [duplicate]MongoDB ID - 两个集合是否具有相同的 ID? [复制]
【发布时间】:2014-08-18 12:34:48
【问题描述】:

好的,所以我有一个成员集合和一个宠物成员集合,现在我了解了如何生成 ID 的基本工作原理,但是分配给宠物集合的 ID 是否有可能与成员集合?

我问的原因是,我们正在改进一个以 MongoDB 为核心的社交网站。现在,虽然这个社交网站确实为每只宠物提供了一个 ID(仅当主人购买了一个 ID 时才会出现这种情况),但我们使用 "_id" or '$id' 作为我们在数据库中查找的主要 ID。

所以我的问题很简单,即使知道它们是两个完全独立的集合,它们最终是否有可能彼此具有相同的 id? - 这是我们不想要的。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    MongoDB 的 ObjectId 不太可能发生冲突。它包含一个计数器、一个随机数、进程id等。在不同的服务器上生成的ObjectIds会有不同的随机数、进程id等。在同一台服务器上生成的ObjectIds在计数器部分会有所不同。

    【讨论】:

    • 那你说我有 10 个会员,但我有 3 个宠物会员,就是这样的柜台?
    • MongoDB 服务器和驱动程序在生成 id 时不知道集合。他们只是说“嘿,给我一个新的 id”,该 id 将用于文档在任何集合中。 id 的第一部分是当前时间。计数器用于在一秒钟内使 id 唯一。通过这种方式,您每秒最多可以创建 16,777,216 个。计数器在一秒钟后重置。
    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 2011-11-24
    • 2011-03-06
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多