如何在C ++(Mongo)中将BSONObj插入另一个BSONObj

时间:2012-04-16 12:45:57

标签: c++ mongodb bson

我需要这样的东西:

{
    "Field1" : "Value1",
    "Field2" : "Value2",
    "Fields3": [
              { "Field311" : Value311, "Field312" : Value312},
              { "Field321" : Value321, "Field322" : Value322},
              { "Field331" : Value323, "Field333" : [
                              ... some more fields here
              ]}
     ]
}

我从json字符串中获取Fields1-2并将它们转换为mongo :: BSONObj。 然后我将Field3添加到root:

mongo::BSONArray arr;
root["Field3"].Obj=arr;

之后我想在循环中填充Field3,但我无法理解如何正确地将BSONObj添加到数组中。我在C# driver中找到了“添加”方法,但C ++没有这样的东西。 谷歌建议我使用ArrayBuilder,但我无法理解。 请告诉我,我该怎么办?一些例子非常有用。

另外,一个问题:为什么有BSONObj和BSONElement,一些建设者等......?在超级简单的JsonCpp(通过简单地使用[]和=运算符和append()方法完成所有操作)之后,一切似乎都非常复杂。

1 个答案:

答案 0 :(得分:0)

可以在此处找到使用BSONArrayBuilder的简单示例: http://www.mongodb.org/pages/viewpage.action?pageId=19562815

可在此处找到相应的文档: http://api.mongodb.org/cplusplus/current/classmongo_1_1_b_s_o_n_array_builder.html

JsonCpp是一个独立开发的库,因此它的工作原理和MongoDB的BSON实现工作方式之间存在很多差异 - 无论好坏。 BSON库在MongoDB中广泛使用,因此其要求与JsonCpp要求完全不同。

希望这有帮助!