C 生成 MongoDB 中的 ObjectId

2021-09-22 10:58:57 字數 966 閱讀 3289

在mongodb中,文件(document)在集合(collection)中的儲存需要乙個唯一的_id欄位作為主鍵。這個_id預設使用objectid來定義,因為objectid定義的足夠短小,並盡最大可能的保持唯一性,同時能被快速的生成。

objectid 是乙個 12 bytes 的 bson 型別,其包含:

4 bytes 自紀元時間開始的秒數

3 bytes 機器描述符

2 bytes 程序id

3 bytes 隨機數

從定義可以看出,在同一秒內,在不同的機器上相同程序id條件下,非常有可能生成相同的objectid。

同時可以根據定義判斷出,在給定條件下,objectid本身即可描述生成的時間順序

objectid的儲存使用byte陣列,而其展現需將byte陣列轉換成字串進行顯示,所以通常我們看到的objectid都類似於:

MongoDB中ObjectId生成規則參考

mongodb中我們經常會接觸到乙個自動生成的字段 id 型別為objectid。本文會詳解objectid的構成和使用。objectid構成 之前我們使用mysql等關係型資料庫時,主鍵都是設定成自增的。但在分布式環境下,這種方法就不可行了,會產生衝突。為此,mongodb採用了乙個稱之為obje...

C 中呼叫OpenCTM開啟 obj三維模型檔案

openctm是一款開源的三維模型檢視軟體,目前最新版為1.0.3,支援.ctm obj 3ds等多種格式。2.在vs2010中,建立乙個winform工程,新建乙個窗體,做乙個button。3.引入命名空間diagnostics。4.在button的click方法中,使用 process.star...

obj檔案中頂點資料的合併

在opengl中,為了減少頂點資料所占用的記憶體,通常會合併具有相同屬性的頂點,然後使用頂點的索引進行繪製。舉例來說,對於xz平面上中心在原點的的單位正方形,需要兩個三角形來表示它,於是一共需要六個頂點 第乙個三角形 v1 位置 0.5,0.0,0.5 紋理座標 0.0,0.0 法向量 0.0,1....