天天看點

三、Bson結構解析以及$type和_id(ObjectID)原理詳細分析

#           Bson結構解析以及$type和_id(ObjectID)原理詳細分析

###1、BSON資料類型及對應的整型及字元型(BSON别名)

每個ducument都是一個Bson資料,所謂的Bson就是對Json的擴充,每個資料中都有一個Key和Value,Value對應的就是以下類型:

三、Bson結構解析以及$type和_id(ObjectID)原理詳細分析

###2、使用{$type:别名}來查詢

db.mycollection.insert({"name":"123"});

db.mycollection.insert({"name":"456"});

db.mycollection.insert({"name":undefined});

printjson(db.mycollection.find({"name":{$type:6}}).toArray());
           

###3、ObjectID

無索引的情況的,我們的資料叫做heap。

有了主鍵索引,那麼就是一個BTree

ObjectId("5789fb58631178e7844d11d8")   生成規則的解釋

4byte:  5789fb58(16進制)   =>   1468660568(10進制時間戳)    2016/7/16 17:18:48

3byte:   631178     =>   機器的唯一辨別碼

2byte:  e784       =>   程序ID

3byte:  4d11d8     =>   随機數


通過上面的這種方式來講objectID做到全局唯一
           
三、Bson結構解析以及$type和_id(ObjectID)原理詳細分析