- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 following function在给定键序列时从 BSON
文档中获取值:
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
可以包含任何类型的值(int32
、document
、array
、utf8
等)。如何通过 std::cout
将此元素写入控制台?
理想情况下,我只需要做:
bsoncxx::document::element myElement = deepFieldAccess(bsonObjView, currQuery);
std::cout << myElement << std::endl;
最佳答案
我们不能打印bsoncxx::document::element
,但是我们可以打印bsoncxx::document::view
。因此,只需将一个转换为另一个并清理生成的字符串。它既丑陋又低效,但可以快速查找 bsoncxx::document::element
的值。
std::string turnQueryResultIntoString(bsoncxx::document::element queryResult) {
// check if no result for this query was found
if (!queryResult) {
return "[NO QUERY RESULT]";
}
// hax
bsoncxx::builder::basic::document basic_builder{};
basic_builder.append(bsoncxx::builder::basic::kvp("Your Query Result is the following value ", queryResult.get_value()));
// clean up resulting string
std::string rawResult = bsoncxx::to_json(basic_builder.view());
std::string frontPartRemoved = rawResult.substr(rawResult.find(":") + 2);
std::string backPartRemoved = frontPartRemoved.substr(0, frontPartRemoved.size() - 2);
return backPartRemoved;
}
关于c++ - 如何将 bsoncxx::document::element 写入控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59116086/
尝试将元素附加到文档时出现错误。 bsoncxx::document::value _obj; //This is Declaration of _obj in diffrent file bson
我在使用 bsoncxx 将 bson 文档转换为 json 字符串时遇到困难。bsoncxx::to_json 函数返回一个“无效”/损坏的 std::string 对象。我无法读取其中的字符,当
类似于我们如何使用单个二进制文档从缓冲区构造 bsoncxx::document::view 对象,是否有一种方法可以从该框架中的 .bson 转储中的集合中提取单个文档,而无需将它们加载到数据库?
请解释bsoncxx::document::value 和bsoncxx::document::view 之间的区别。 view 只是 value 类的代理吗? 最佳答案 在 bsoncxx 库中,值
我有 following function在给定键序列时从 BSON 文档中获取值: bsoncxx::document::element deepFieldAccess(bsoncxx::docum
我正在使用 mongocxx 驱动程序,我正在考虑将 BSON 中给出的查询结果作为数据持有者保存在几个对象中,而不是解析 BSON 以检索值然后丢弃它. “如果”我可以即时编辑 BSON,这会有些意
我是一名优秀的程序员,十分优秀!