C++ 如何将BSON对象的OID作为十六进制字符串获取?

C++ 如何将BSON对象的OID作为十六进制字符串获取?,c++,mongodb,serialization,bson,mongo-cxx-driver,C++,Mongodb,Serialization,Bson,Mongo Cxx Driver,我正在使用mongocxx驱动程序尝试将BSON对象的对象ID转换为字符串 BSONObj r=some_function(); BSONElement oi; r.getObjectID(oi); OID o=oi.__oid(); cout<<"oid:"<<o.toString()<<endl;` BSONObj r=some_函数(); b单一元素oi; r、 getObjectID(oi); OID o=oi._OID(); cout查询对象返回一

我正在使用
mongocxx
驱动程序尝试将
BSON
对象的对象ID转换为字符串

BSONObj r=some_function();
BSONElement oi;
r.getObjectID(oi);
OID o=oi.__oid();
cout<<"oid:"<<o.toString()<<endl;`
BSONObj r=some_函数();
b单一元素oi;
r、 getObjectID(oi);
OID o=oi._OID();

cout查询对象返回一个指针,指向存储
BSONObj
的缓冲区。
当我没有使用函数
BSONObj::getOwned()
请求导致异常的
BSONObj
的副本时,我出错了。

检查对象的ID是否实际为OID类型。或者使用选中的OID()调用而不是_OID()。仍然会收到相同的错误。我是否正确使用了getObjectID函数?API文档对此解释不够。请尝试以下方法:std::string oid=r[“_id”].oid().toString();它仍然不起作用。函数OID()未在BSOneElement类中定义。我发现了错误并添加了答案。谢谢你的帮助。