TL;DR:由DocumentDB自动生成的ID应该是GUID还是UUID,它们之间有什么区别?如果它们是UUID,则是哪个变体/版本的UUID?
这可能取决于用于创建文档的客户端。在我们的DocumentDB数据库中,我们有第三组
背景:如果您没有提供ID,一些DocumentDB客户端库将自动生成一个ID。我在Azure博客和几个相关的问题中看到有提到生成的ID是GUID。我知道有一些讨论关于GUID是否是UUID,很多人说它们是。
问题:然而,我注意到DocumentDB自动生成的一些ID并未遵循UUID RFC,该标准仅允许在“版本”半字节(V
在xxxxxxxx-xxxx-Vxxx-xxxx-xxxxxxxxxxxx
中)中使用数字1-5。DocumentDB生成的ID在该半字节中使用任何十六进制数字,例如d981befd-d19b-ee48-35bd-c1b507d3ec4f
,其版本半字节为ee48
中的第一个e
。这可能取决于用于创建文档的客户端。在我们的DocumentDB数据库中,我们有第三组
dde5
、627a
、fe95
等文档。这些文档是通过调用Collection.createDocument()
并使用选项{'disableAutomaticIdGeneration': false}
在存储过程内存储的。我通过第三方DocumentDB Studio应用程序创建的其他文档始终在第三个分组中具有4xxx
,这是有效的UUID版本。但是,我通过Azure portal创建的文档具有非标准的第三组,例如b359
。
问题:自动生成的DocumentDB ID应该是GUID还是UUID?如果是UUID,则是哪个变体?