【问题标题】:mongo c++ Bsonbuilder, BSONObj to final c BSONmongodb c++ Bson Builder, BSON Obj to final c BSON
【发布时间】: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


【解决方案1】:

你可以使用

bson_t* b = bson_new_from_data(obj.objdata, obj.objsize)

但你总是会创建两次对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2014-06-03
    相关资源
    最近更新 更多