使用sequoiadb开发c++应用时需要使用BSON对象,本篇主要讲下BSON的操作方面的东西
1:构建一个_id的BSON对象
BSON的c++驱动给我提供了一个宏BSON,使用该对象可以很方便的生成一个BSON对象,但是有个坑,它不能构建——Id的BSON对象
BSONObj obj=BSON("_id"<<BSON("$oid"<<"xxx"));
使用这个语句创建BSON,在查找的时候,找不到数据(报错,忘记)。正确做法应该是。
BSONObjBuilder builder ; OID oid(inst_id);
BOSONObj condition=builder.appendOID("_id",&oid); // StringData类型可以使用string类型和char* 替换
2:构建一个BSON,值是数组
数据格式{"num":[33,44]}
BSONArrayBuilder nums; BSONObjBuilder arr; nums<<33<<44; arr.append("num",nums.arr());
注意上面BSONArrayBuilder不能使用done方法,该方法会生成一个映射数组
也可以使用宏
BSON( "phone" << BSON_ARRAY( "13800138123" << "13800138124" ) )
这些类和宏都在namespace bson下面。