新聞中心
MongoDB ObjectId
在前面幾個(gè)章節(jié)中我們已經(jīng)使用了MongoDB 的對(duì)象 Id(ObjectId)。

10年積累的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有東安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
在本章節(jié)中,我們將了解的ObjectId的結(jié)構(gòu)。
ObjectId 是一個(gè)12字節(jié) BSON 類型數(shù)據(jù),有以下格式:
- 前4個(gè)字節(jié)表示時(shí)間戳
- 接下來的3個(gè)字節(jié)是機(jī)器標(biāo)識(shí)碼
- 緊接的兩個(gè)字節(jié)由進(jìn)程id組成(PID)
- 最后三個(gè)字節(jié)是隨機(jī)數(shù)。
MongoDB中存儲(chǔ)的文檔必須有一個(gè)"_id"鍵。這個(gè)鍵的值可以是任何類型的,默認(rèn)是個(gè)ObjectId對(duì)象。
在一個(gè)集合里面,每個(gè)文檔都有唯一的"_id"值,來確保集合里面每個(gè)文檔都能被唯一標(biāo)識(shí)。
MongoDB采用ObjectId,而不是其他比較常規(guī)的做法(比如自動(dòng)增加的主鍵)的主要原因,因?yàn)樵诙鄠€(gè) 服務(wù)器上同步自動(dòng)增加主鍵值既費(fèi)力還費(fèi)時(shí)。
創(chuàng)建新的ObjectId
使用以下代碼生成新的ObjectId:
>newObjectId = ObjectId()
上面的語句返回以下唯一生成的id:
ObjectId("5349b4ddd2781d08c09890f3")
你也可以使用生成的id來取代MongoDB自動(dòng)生成的ObjectId:
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
創(chuàng)建文檔的時(shí)間戳
由于 ObjectId 中存儲(chǔ)了 4 個(gè)字節(jié)的時(shí)間戳,所以你不需要為你的文檔保存時(shí)間戳字段,你可以通過 getTimestamp 函數(shù)來獲取文檔的創(chuàng)建時(shí)間:
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
以上代碼將返回 ISO 格式的文檔創(chuàng)建時(shí)間:
ISODate("2014-04-12T21:49:17Z")
ObjectId 轉(zhuǎn)換為字符串
在某些情況下,您可能需要將ObjectId轉(zhuǎn)換為字符串格式。你可以使用下面的代碼:
>new ObjectId().str
以上代碼將返回Guid格式的字符串::
5349b4ddd2781d08c09890f3
網(wǎng)站名稱:創(chuàng)新互聯(lián)MongoDB教程:MongoDBObjectId
標(biāo)題鏈接:http://www.5511xx.com/article/dpspsdc.html


咨詢
建站咨詢
