如何将bsoncxx :: document :: element写入控制台

问题描述 投票:1回答:1

当给定键序列时,我有following functionBSON文档中获取值:

bsoncxx::document::element deepFieldAccess(bsoncxx::document::view bsonObj, const std::vector<std::string>& path) {

    if (path.empty())
        return {};

    auto keysIter = path.begin();
    const auto keysEnd = path.end();

    auto currElement = bsonObj[*(keysIter++)];
    while (currElement && (keysIter != keysEnd))
        currElement = currElement[*(keysIter++)];

    return currElement;
}

返回的bsoncxx::document::element可以保存任何类型的值(int32documentarrayutf8等)。如何通过std::cout将此元素写入控制台?

c++ mongodb bson mongo-cxx-driver
1个回答
0
投票

bsoncxx::document::view类型具有到JSON的已定义转换,通过std::string标头中的函数bsoncxx::to_json表示为bsoncxx/json.hpp。单独的b_xyz类型不提供这种转换,因为未包含在文档或数组结构中的元素不一定是JSON。您可以自由地形成自己的to_string函数,并为每个声明的BSON类型定义它。

© www.soinside.com 2019 - 2024. All rights reserved.