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

时间:2012-01-27 20:49:37

标签: c++ mongodb serialization bson mongo-cxx-driver

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

BSONObj r=some_function();
BSONElement oi;
r.getObjectID(oi);
OID o=oi.__oid();
cout<<"oid:"<<o.toString()<<endl;`

我确信BSONObj有有效数据,但我收到以下错误:

  

BSONElement:错误类型#somenumber

1 个答案:

答案 0 :(得分:0)

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