【发布时间】:2015-08-26 16:32:03
【问题描述】:
这里的基本目标是读取带有数组子文档的 json 以及任何字符串格式的 {key:"value", boolkey, true, {subkey: value}, array: [x,y,z] },而不关心进行 append_int、append_bool 和所有爵士乐。
使用方便的 C++ BSONObj 的任何方式,mongo::fromjson BSONObjBuilder 最终输出一个 C bson_t。
即。沿任一方向
mongo::BSONObj& query = mongo::fromjson ( szJSON );
bson_t bson = query.c_obj();
或
BSONObj Builder builder;
... (build, build, build)
BSONObj obj = builder.obj();
bson_t bson = obj.c_obj();
鉴于 c++ 是基于 c 驱动程序构建的,人们会认为 bson_t 位于某处
【问题讨论】:
-
bson_t是 C API,而BSONObj是 C++ API。混合它们的原因是什么? -
c++驱动比较复杂,不太稳定。 c驱动程序是许多驱动程序的基础,所以假设它是稳定的。另一方面,c bson 库使用起来很尴尬。
标签: mongodb bson mongo-c-driver mongo-cxx-driver