如何使用 C++ 将 Boost ptree 插入 MongoDB

How to insert a Boost ptree into MongoDB using C++

我已经在 https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/tutorial/ 处编译并准备好 MongoDB C++ 驱动程序,使用文字数据测试正常。

但挑战在于如何将 Boost ptree 作为文档存储到 MongoDB 中。我有一个 Boost ptree 因为我正在使用 Boost 来解析 JSON string.

流程如下:

输入 --> JSON String (OK) --> Boost ptree (OK) --> MongoDB insert (stuck!)

终于找到解决办法了!

这些是步骤:

  • ptree可以通过解析JSON字符串得到(Boost read_json)
  • 检查或修改 ptree 对象中的值
  • 使用 Boost write_json
  • 将 ptree 转换回 JSON 字符串
  • 转换为 MongoDB BSON 值:bsoncxx::document::value Doc = bsoncxx::from_json(Str)
  • 插入数据库:cxxClient["dbname"]["collection"].insert_one(Doc.view());