七叶笔记 » 数据库 » MongoDB中的bson介绍和使用实例

MongoDB中的bson介绍和使用实例

这是一个简单的BSON结构体,其中每一个element都是由key/value对组成的

3.2 一个嵌套的例子

这是一种相对复杂点的例子,其中包括了地址对象和分数对象数组,这里使用了嵌套文档对象与文档对象数据来表示单个学生的信息,这种嵌套的文档结构要使用关系数据库来做是比较复杂的。   4. BSON c++ 代码分析

MongoDB源代码树中包括了BSON的代码库,你只要包含bson.h这个头文件就行了,其中有四个类是比较重要的:

下面是创建一个BSON对象

或者

或者用流的方法来

或者用宏来创建一个对象

这里分析一下这四个类的一些代码: mongo::BSONObj主要是用于存储BSON对象的,具体的存储格式如下

一般来说,BSONObj的创建都是通过BSONObjBuilder来做的,除非你已经得到了其字节流,那可以直接生成BSONObj   mongo::BSONElement 它主要是用于存储对象中的单个元素,存储格式如下

这个对象主要是指向BSONObj对象中具体元素的地址,它不实际存储元素的值。 mongo::BSONObjBuilder 它主要是用于生成BSONObj,这个对象集成了StringBuilder,它主要用于存储实际的字节点,用于替换std::stringstream,而这个StringBuilder集成了BufBuilder,这是一个可以动态增长内存缓冲区,但最大容量不能超过64MB的大小,也就是说一个BSONObj最大不能超过64MB。   mongo::BSONOBjIterator 它主要是用来遍历BSONObj对象中的每一个元素,提供了类似于stl iterator的一些接口,它还提供了一个ForEach宏来提供更方便的操作,如

相关文章