# Bson結構解析以及$type和_id(ObjectID)原理詳細分析
###1、BSON資料類型及對應的整型及字元型(BSON别名)
每個ducument都是一個Bson資料,所謂的Bson就是對Json的擴充,每個資料中都有一個Key和Value,Value對應的就是以下類型:
###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做到全局唯一