为什么mongoDB使用objectID?

时间:2011-07-03 03:25:07

标签: mongodb

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }

objectId究竟是什么目的?这是使用时间戳生成的大数字。

如果我看到任何nosql是键值,我用键查询值。

这里我们使用key和value作为数据并使用find()函数。

所以,我想知道什么时候我们真的需要objectid? 授予用户访问权限以查看对象ID值的原因是什么?

阅读文档后,一个基本问题是mongo DB作为哈希表类型实现吗?

2 个答案:

答案 0 :(得分:6)

  

准备好doc ..一个基本问题是mongo DB作为哈希表类型实现吗?

MongoDB使用BSON,一种二进制形式的JSON。 JSON对象基本上只是一个“哈希表”或一组键/值对。

  

究竟对象id的用途是什么?这是一个随时间生成的大数字。

在MongoDB中,您存储的每个文档都必须有_id。如果您没有为_id设置值,那么MongoDB会自动为您生成一个值。如果在插入对象时有唯一键,则可以使用该键。有关ObjectId的详细信息,请参阅here

  

如果我看到任何nosql是键值,我用键查询值。

MongoDB不仅仅是键值。 MongoDB支持单个集合上的多个索引,您可以在许多不同的字段上查询,而不仅仅是“key”或“id”。

答案 1 :(得分:1)

对象ID类似于RDBMS中的主键 每当您插入新文档时,mongodb都会生成对象ID。

对象ID是12字节的BSON类型。

前4个字节表示时间戳 下一个3字节唯一机器标识符 下一个2字节的进程ID 下一个3字节随机增量计数器

返回等效的16位十六进制