每個MongoDB的document都有一個_id字段作為它的第一個屬性,這個值通常是一個BSON對象id,因此,這個id對于集合中的每個成員都是唯一的,如果用戶插入一個document沒有提供一個id,數(shù)據(jù)庫將自動生成一個id,并存儲在_id字段。
The BSON ObjectId Datatype 一個BSON ObjectID是由12個字節(jié)組成:4字節(jié)時間+3字節(jié)機器id+2字節(jié)進程id+3字節(jié)的數(shù)字 { "_id" : ObjectId("4c691e72ed2a47b462dfa806") } 有時候我們的應(yīng)用中需要自增長的數(shù)字型主鍵,MongoDB在這方面并沒有給我們提供支持,我們需要加以改造,使其具有自增長主鍵生成的功能。此次的功能改造,依賴的是morphia開源項目(MongoDB在java語言上的ORM實現(xiàn),http://code.google.com/p/morphia/),直接上代碼吧。 首先定義一個保存各個 collection的主鍵增量值的系統(tǒng)配置collection:StoredSeqence java 代碼
java 代碼
這樣自增長主鍵的生成的主要功能基本上已經(jīng)完成了,具體如何使用,接下來將根據(jù)實際的項目再做介紹,請繼續(xù)關(guān)注我的博客。 |
|