版权声明:本文为博主原创文章,未经博主允许欢迎转载,请注明原文链接。一起交流,共同进步。 https://blog.csdn.net/newbie_907486852/article/details/82391110
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做到全局唯一