【发布时间】:2016-03-15 09:44:10
【问题描述】:
我想知道是否为 Parse.com 上存储的对象自动生成的 ObjectId,它们是否在多个类中是唯一的,或者没有这样的保证
整个网络都有相互矛盾的证据(见下文)。有人可以指出我可以在哪里找到它的官方文档,因为我自己似乎找不到它。
【问题讨论】:
标签: javascript ios swift parse-platform objectid
我想知道是否为 Parse.com 上存储的对象自动生成的 ObjectId,它们是否在多个类中是唯一的,或者没有这样的保证
整个网络都有相互矛盾的证据(见下文)。有人可以指出我可以在哪里找到它的官方文档,因为我自己似乎找不到它。
【问题讨论】:
标签: javascript ios swift parse-platform objectid
Parse 员工回答了您的问题:
我们只保证它们在每个班级的基础上都是独一无二的。我们将更新 iOS 文档以反映这一点,感谢您指出。
请注意,您将需要数十亿个对象,然后才有可能出现重复。所以你可以假设它不会发生。我们只是在生成它时不强制执行它。
【讨论】:
不,您不能保证它是独一无二的。就是这样的解释:
您可以使用 DataBrowser 中的上传功能(JSON 或 CSV 文件)上传对象,使用您想要的任何 ID,甚至像“IDENTITY_1”这样的 ID。在上传期间,它将针对正在上传的集合进行验证。并非针对所有集合。
话虽如此,您有可能在集合中重复了 ID。
所以,不要基于这种假设进行编码。
【讨论】:
Parse 可能正在使用在 Mongodb 中生成的 id。它们不是随机生成的,但由于每个类都可能具有唯一的签名,因此生成的 id 将保证在所有类中都是唯一的:
BSON ObjectID 是一个 12 字节的值 由一个 4 字节的时间戳组成 (自纪元以来的秒数),一个 3 字节 机器 ID,一个 2 字节的进程 ID,和一个 3字节计数器
【讨论】: