【问题标题】:C++ BSON Library how to load bson from c_str()?C++ BSON 库如何从 c_str() 加载 bson?
【发布时间】:2012-04-27 09:07:21
【问题描述】:

假设我们有一个包含二进制 bson 数据的字符串。如何将其加载到bson object

【问题讨论】:

    标签: c++ json mongodb bson


    【解决方案1】:

    我认为在同一页面上有一个示例可以做到这一点:

    BSONObjBuilder b;
    b << "name" << "Joe" << "age" << 33;
    BSONObj p = b.obj();
    

    也就是说,BSONObjBuilder 有一个const char * 的流运算符。

    From the docs:

    BSONObjBuilderValueStream & operator<< (const char *name)
    Stream oriented way to add field names and values. 
    

    【讨论】:

    • 我的意思是我已经有了某人生成的 bson(它被下载到一些 std::string 中),现在我想用 bson 将它解析成对象,不知道该怎么做?跨度>
    • 你想构造一个 BSONObj 或者你想提取数据字段?
    • 为什么不能直接把字符串传给 mongo::BSONObj::BSONObj ( const char * msgdata )
    • 它只适用于原始 bson - 它只分配给const char *_objdata;
    • 是否可以将原始 json 提供给它?
    【解决方案2】:

    试试 BSONObj p(you_data_pointer);

    【讨论】:

      【解决方案3】:

      对于原始 json 字符串,使用 mongo::fromjson

      mongo::BSONObj object = mongo::fromjson("{"Login":"test","Password":"12345","Role":["admin","manager"]}");
      

      【讨论】:

        猜你喜欢
        • 2014-06-03
        • 1970-01-01
        • 2014-03-06
        • 2015-03-06
        • 2017-06-17
        • 1970-01-01
        • 2015-04-23
        相关资源
        最近更新 更多