获取 OID(类型::b_oid)作为 MongoDB C++驱动程序中的字符串



我正在使用MongoDB C++驱动程序(版本3.4.0供参考(。我需要获取给定文档的_id。首先,我拿起文件:

bsoncxx::stdx::optional<bsoncxx::document::value> sub = conn["mydb"]["csubs"].find_one(...);

所以我可以通过这种方式访问_id

sub->view()["_id"].get_oid();

目前为止,一切都好。

据我在驱动程序 API 中读取的内容,此对象的类型为types::b_oid。但是,我需要将其作为std::string.

令人惊讶的是,我在types::b_oid类文档中没有找到任何用于字符串转换的方法。我的意思是,典型的to_string()方法,所以我可以调用以下内容:

sub->view()["_id"].get_oid().to_string();

可能我错过了一些东西(因为用例似乎太明显了:),但是在检查文档一段时间后,我还没有找到解决方案。欢迎任何帮助!

我认为您可以从value字段中调用to_string()

sub->view()["_id"].get_oid().value.to_string();

这是来自mongocxx github存储库的示例

最新更新