Max*_*nce 42
它们不是随机的,可以很容易地预测:
BSON ObjectID是一个12字节的值,包括一个4字节的时间戳(自纪元以来的秒数),一个3字节的机器ID,一个2字节的进程ID和一个3字节的计数器
http://www.mongodb.org/display/DOCS/Object+IDs
Cha*_*ira 16
下面是MongoDB ObjectID的javascript实现(http://jsfiddle.net/icodeforlove/rN3zb/)
function ObjectIdDetails (id) {
return {
seconds: parseInt(id.slice(0, 8), 16),
machineIdentifier: parseInt(id.slice(8, 14), 16),
processId: parseInt(id.slice(14, 18), 16),
counter: parseInt(id.slice(18, 24), 16)
};
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您有足够的内容,他们会泄漏有关您的基础架构的相关信息.而且你也知道一切的对象创建日期.
IE:您拥有多少台服务器,以及每台服务器运行的进程数.
Oct*_*Oct 12
它们通常由驱动程序本身在客户端生成.例如,在ruby中,可以使用BSON :: ObjectID:
您还可以生成自己的ObjectIds.如果要使用业务标识符,这尤其有用.
MongoDB 数据库驱动程序默认生成分配给每个文档的 _id 字段的 ObjectID 标识符。在许多情况下,ObjectID 可用作应用程序中的唯一标识符。
ObjectID 是一个 96 位数字,其组成如下:
一个 4 字节的值,表示自 Unix 纪元以来的秒数(直到 2106 年才会用完秒数)
一个 3 字节的机器标识符(通常来自 MAC 地址),
一个 2 字节的进程 ID,以及
一个 3 字节的计数器,从一个随机值开始。
归档时间: |
|
查看次数: |
13238 次 |
最近记录: |