# MongoDB ObjectId
在前面幾個章節中我們已經使用了MongoDB 的對象 Id(ObjectId)。
在本章節中,我們將了解的ObjectId的結構。
ObjectId 是一個12字節 BSON 類型數據,有以下格式:
* 前4個字節表示時間戳
* 接下來的3個字節是機器標識碼
* 緊接的兩個字節由進程id組成(PID)
* 最后三個字節是隨機數。
MongoDB中存儲的文檔必須有一個"_id"鍵。這個鍵的值可以是任何類型的,默認是個ObjectId對象。
在一個集合里面,每個集合都有唯一的"_id"值,來確保集合里面每個文檔都能被唯一標識。
MongoDB采用ObjectId,而不是其他比較常規的做法(比如自動增加的主鍵)的主要原因,因為在多個 服務器上同步自動增加主鍵值既費力還費時。
## 創建信的ObjectId
使用以下代碼生成新的ObjectId:
```
>newObjectId = ObjectId()
```
上面的語句返回以下唯一生成的id:
```
ObjectId("5349b4ddd2781d08c09890f3")
```
你也可以使用生成的id來取代MongoDB自動生成的ObjectId:
```
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
```
## 創建文檔的時間戳
由于 ObjectId 中存儲了 4 個字節的時間戳,所以你不需要為你的文檔保存時間戳字段,你可以通過 getTimestamp 函數來獲取文檔的創建時間:
```
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
```
以上代碼將返回 ISO 格式的文檔創建時間:
```
ISODate("2014-04-12T21:49:17Z")
```
## ObjectId 轉換為字符串
在某些情況下,您可能需要將ObjectId轉換為字符串格式。你可以使用下面的代碼:
```
>new ObjectId.str
```
以上代碼將返回Guid格式的字符串::
```
5349b4ddd2781d08c09890f3
```
- NoSQL 簡介
- 什么是MongoDB ?
- window平臺安裝 MongoDB
- Linux平臺安裝MongoDB
- MongoDB 數據庫,對象,集合
- MongoDB - 連接
- PHP安裝MongoDB擴展驅動
- MongoDB 數據插入
- MongoDB使用update()函數更新數據
- MongoDB使用- remove()函數刪除數據
- MongoDB 查詢
- MongoDB條件操作符
- MongoDB條件操作符 - $type
- MongoDB Limit與Skip方法
- MongoDB 排序
- MongoDB 索引
- MongoDB 聚合
- MongoDB 復制(副本集)
- MongoDB 分片
- MongoDB 備份(mongodump)與恢復(mongorerstore)
- MongoDB 監控
- MongoDB Java
- MongoDB PHP
- MongoDB 關系
- MongoDB 數據庫引用
- MongoDB 覆蓋索引查詢
- MongoDB 查詢分析
- MongoDB 原子操作
- MongoDB 高級索引
- MongoDB 索引限制
- MongoDB ObjectId
- MongoDB Map Reduce
- MongoDB 全文檢索
- MongoDB 正則表達式
- MongoDB 管理工具: Rockmongo
- MongoDB GridFS
- MongoDB 固定集合(Capped Collections)
- MongoDB 自動增長
- 免責聲明