【问题标题】:Are Parse Object ID's unique across classes or not?Parse Object ID 在类中是否唯一?
【发布时间】:2016-03-15 09:44:10
【问题描述】:

我想知道是否为 Parse.com 上存储的对象自动生成的 ObjectId,它们是否在多个类中是唯一的,或者没有这样的保证

整个网络都有相互矛盾的证据(见下文)。有人可以指出我可以在哪里找到它的官方文档,因为我自己似乎找不到它。

Not Unique

Unique

Not Unique

【问题讨论】:

    标签: javascript ios swift parse-platform objectid


    【解决方案1】:

    Parse 员工回答了您的问题:

    我们只保证它们在每个班级的基础上都是独一无二的。我们将更新 iOS 文档以反映这一点,感谢您指出。

    请注意,您将需要数十亿个对象,然后才有可能出现重复。所以你可以假设它不会发生。我们只是在生成它时不强制执行它。

    【讨论】:

      【解决方案2】:

      不,您不能保证它是独一无二的。就是这样的解释:

      您可以使用 DataBrowser 中的上传功能(JSON 或 CSV 文件)上传对象,使用您想要的任何 ID,甚至像“IDENTITY_1”这样的 ID。在上传期间,它将针对正在上传的集合进行验证。并非针对所有集合。

      话虽如此,您有可能在集合中重复了 ID。

      所以,不要基于这种假设进行编码。

      【讨论】:

      • 很公平 - 我试过了,你是对的。虽然这不支持我的用例,但它的合理建议
      【解决方案3】:

      Parse 可能正在使用在 Mongodb 中生成的 id。它们不是随机生成的,但由于每个类都可能具有唯一的签名,因此生成的 id 将保证在所有类中都是唯一的:

      BSON ObjectID 是一个 12 字节的值 由一个 4 字节的时间戳组成 (自纪元以来的秒数),一个 3 字节 机器 ID,一个 2 字节的进程 ID,和一个 3字节计数器

      http://www.mongodb.org/display/DOCS/Object+IDs

      【讨论】:

      • 很好的响应 - 但我们确定 Parse 使用的是在 Mongodb 中生成的 id 吗?
      • 我不是 100% 确定,但很有可能他们的数据存储系统使用 Mongodb
      • 我只是暂时不回答这个问题,虽然我相信你,但我希望能得到一些确凿的证据。但是我有一个后续问题要问你:如果 objectID 在类中是唯一的,为什么我不能直接使用 objectID 查询解析,而不指定类?
      • 没有办法在庞大的数据库中有效地随机访问对象。您需要以某种方式构建/索引您的数据,以便能够有效地访问它,而不需要世界上所有的 RAM 和处理能力。
      猜你喜欢
      • 2017-01-15
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 2014-06-24
      相关资源
      最近更新 更多