使用MongoDB文档中的字段ID或_ID有什么区别吗?
我问这个,因为我通常使用"_id",但是我在文档中看到了这种类型({id:-1}):http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs# OptimizingObjectIDs-Sortbyidtosortbyinsertiontime
编辑
事实证明文件是错误的.
小智 55
我希望它只是文档中的一个错字.该_id字段是每个文档的主键.它被称为_id并且也可以通过id.尝试使用id密钥可能会导致illegal ObjectId format错误.
该部分仅表示自动生成的ObjectID以时间戳开头,因此可以自动对文档进行排序.这非常酷,因为它_id会在每个集合中自动编入索引.有关更多信息,请参见http://www.mongodb.org/display/DOCS/Object+IDs.具体在"BSON ObjectID规范"下.
BSON ObjectID是一个12字节的值,由4字节时间戳(自纪元以来的秒数),3字节机器ID,2字节进程ID和3字节计数器组成.请注意,与BSON的其余部分不同,时间戳和计数器字段必须以big endian存储.
Bry*_*isi 13
该_id字段是Bson ObjectId的默认字段,默认情况下,它是索引的.
_id和id不一样.id如果需要,您也可以选择添加一个被调用的字段,但除非您添加索引,否则它不会是索引.
这只是文档中的一个错字.
id是mongoid.id中_id的别名,它将返回文档的_id. https://github.com/mongodb/mongoid/blob/master/lib/mongoid/fields.rb#L47
如果未指定_id字段,则会自动生成ObjectedId.
我的两分钱:
MongoDB为每个文档分配一个_id字段并为其分配主索引。我们也可以通过多种方式应用二级索引。默认情况下,为类型字段MongoDB创建值。该值在规范中定义,其结构如下:_idObjectIDBSON
ObjectID(12 字节十六进制字符串)= 日期(4 字节,表示自 Unix 纪元以来的秒数的时间戳值)+ MAC 地址(3 字节)+ PID(2 字节)+ 计数器(3 字节)
| 归档时间: |
|
| 查看次数: |
67607 次 |
| 最近记录: |