遍历 mongocxx 查询以获取每个键和值

Iterate through a mongocxx query to get each key and value

我正在使用以下代码查询集合:

bsoncxx::stdx::optional<bsoncxx::document::value> query_result =
collection.find_one(bsoncxx::builder::stream::document{} << "_tablename" << tableToSearch.toUtf8().constData() << "rowuuid" << UUIDToSearch.toUtf8().constData() << bsoncxx::builder::stream::finalize);
if(query_result)
{

}

我可以从文档中看到如何打印结果:

std::cout << bsoncxx::to_json(*maybe_result) << "\n";

但是我如何遍历结果以获取每个键及其值作为字符串?

请通读 mongocxx 和 bsoncxx 示例。您可以在此处找到演示游标迭代的示例:

https://github.com/mongodb/mongo-cxx-driver/blob/fc9a44325e03bb8bb166e814caeb23413b4ba7af/examples/mongocxx/query.cpp#L43-L46

但是,在您的示例中,您正在进行查找,所以我猜您想要迭代每个字段,而不是每个文档。在这种情况下,您可以在此处查看行走 BSON 对象的示例:

https://github.com/mongodb/mongo-cxx-driver/blob/fc9a44325e03bb8bb166e814caeb23413b4ba7af/examples/bsoncxx/view_and_value.cpp#L61-L62