gpt4 book ai didi

mongodb - BinData 是 Mongo ObjectId 吗?

转载 作者:可可西里 更新时间:2023-11-01 09:24:29 28 4
gpt4 key购买 nike

我的团队使用 MongoDB 2.4.10。 id 字段看起来像这样

{ "_id" : BinData(3,"fEkTlzkZw8m4JJx5nB+fkw==")

我知道 3 是 BSON 子类型,值是 Base64。但这是否是 ObjectId?有人告诉我不是。我需要的是一个 ObjectId getTimestamp() 方法。

最佳答案

您看到的是一个采用传统编码的 UUID

BinData(3, ...) 但是,与 bson types 无关正如另一个答案中所引用的那样,正如您已经指出的那样。当然 bson 类型是 0x05,因为它是二进制数据。这在控制台上显示为 BinData

但是,BinData 再次具有“内部类型”,可以说是子类型。那就是 3 您看到的 BinData 构造函数的第一个参数。如你所见from the spec , subtype 3 指定它是一个 UUID。

\x03 UUID (Old) - This used to be the UUID subtype, but was deprecated in favor of \x04. Drivers and tools for languages with a native UUID type should handle \x03 appropriately.

这意味着这不仅仅是一些二进制数据,但不幸的是,大多数 UUID(全部?)不包含时间戳,所以恐怕信息会丢失。

请注意,ObjectId 具有不同的 bson 类型 (0x07),这样它比 BinData 更有效,因为不需要存储额外的子类型信息. 换句话说,BinData 永远不是 ObjectId(除非它被显式存储为通用二进制信息,这会适得其反)

关于mongodb - BinData 是 Mongo ObjectId 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121705/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com