我有两个问题,我在教程中找不到答案。
我得到一个文档,然后是doc中的一个元素:
bsoncxx::document::element e = doc["id"];
if (!e || e.type() != bsoncxx::type::k_int32) return ERROR;
int id = e.get_int32();
有没有办法为类型获取字符串值,以便进行调试? 像:
std::cout << e.type() << std::endl;
(不起作用)
第二个问题是如何将utf8类型值转换为std :: string。 这不起作用:
e = doc["name"];
if (!e || e.type() != bsoncxx::type::k_utf8) return ERROR;
string name = e.get_utf8().value;
任何提示?
答案 0 :(得分:7)
打印类型为字符串(LIGNE 67)
#include <bsoncxx/types.hpp>
std::string bsoncxx::to_string(bsoncxx::type rhs);`
元素到std :: string
stdx::string_view view = e.get_utf8().value;
string name = view.to_string();
答案 1 :(得分:0)
#include <bsoncxx/types.hpp>
std::cout << bsoncxx::to_string(bsoncxx::types::b_utf8::type_id);
结果:&#34; utf8&#34;
这些是bsoncxx的类型
namespace types {
struct b_eod;
struct b_double;
struct b_utf8;
struct b_document;
struct b_array;
struct b_binary;
struct b_undefined;
struct b_oid;
struct b_bool;
struct b_date;
struct b_null;
struct b_regex;
struct b_dbpointer;
struct b_code;
struct b_symbol;
struct b_codewscope;
struct b_int32;
struct b_timestamp;
struct b_int64;
struct b_minkey;
struct b_maxkey;
class value;
} // namespace types