我需要这样的东西:
{
"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()方法完成所有操作)之后,一切似乎都非常复杂。
答案 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要求完全不同。
希望这有帮助!