如何使用 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());
我已经在 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());