2011-07-03 123 views
1
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" } 

objectId的目的究竟是什麼?這是一個使用時間戳生成的大數字。爲什麼mongoDB使用objectID?

如果我看到任何鍵值的nosql,我用鍵值查詢。

這裏我們使用鍵和值作爲數據並使用find()函數。

所以,我想了解什麼時候我們真的需要objectid? 給予用戶查看對象ID值的權限背後的原因是什麼?

閱讀文檔後,一個基本問題是mongo DB作爲散列表類型實現?

回答

4

準備好doc後..一個基本的問題是mongo DB作爲哈希表類型的實現嗎?

MongoDB使用BSON,JSON的二進制形式。 JSON對象基本上只是一個「哈希表」或一組鍵/值對。

究竟是什麼使用對象ID?這是一個隨時間而產生的大數字。

在MongoDB中,您存儲的每個文檔都必須有一個_id。如果您沒有爲_id設置值,那麼MongoDB會自動爲您生成一個值。如果在插入對象時有唯一鍵,則可以使用該鍵。有關ObjectId的詳細信息,請參見here

如果我看到任何是鍵值的nosql,我用鍵值查詢。

MongoDB不只是鍵值。 MongoDB在單個集合上支持多個索引,您可以在許多不同的字段上查詢,而不僅僅是「key」或「id」。

+0

猜測連結的ObjectId參考應http://docs.mongodb.org/manual/reference/object-id/ – Marian

0

對象ID與RDBMS中的主鍵類似 只要您插入新文檔,mongodb就會生成對象ID。

對象ID是一個12字節的BSON類型。

第一4字節表示時間戳 下一個3字節的唯一的機器標識 下一個2字節進程id 下一個3字節的隨機增量計數器

返回等效的16位十六進制