【问题标题】:How to insert BSONObj into another BSONObj in C++ (Mongo)如何在 C++ (Mongo) 中将 BSONObj 插入另一个 BSONObj
【发布时间】:2012-04-27 19:05:16
【问题描述】:

我需要这样的东西:

{
    "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 中找到了“Add”方法,但 C++ 没有这样的东西。 谷歌建议我使用 ArrayBuilder,但我不明白怎么做。 请告诉我,我该怎么办?一些例子会非常有用。

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

【问题讨论】:

    标签: c++ mongodb bson


    【解决方案1】:

    可以在此处找到使用 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 要求完全不同。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2019-02-13
      相关资源
      最近更新 更多