C++操作Mongo中的BSONElement问题

0x甲鱼 2012-12-26 06:40:30
C++程序跟数据有点儿繁杂,直接抽象出来我遇到的问题吧:
从数据库里读出来BSONObj经过getField("Field")操作生成一个BSONElement,
伪码:
BSONElement temp=data_from_db;

然后
std::cout<<temp<<std::endl;

之后终端显示出来的数据为
ids: [ 276804543, 276804580, 276680204, 276806938, 276679449, 276804946, 276931311, 276846609 ]

我的目标是提取ids列里的每一个id,请问接下来该怎么做?

我试过将temp数组化后存到一个vector里面
typedef vector<BSONElement> B_ARR;
B_ARR ids_vec=temp.Array();
for(B_ARR::iterator itr=ids_vec.begin();itr != ids_vec.end();itr++)
{
std::cout<<*itr<<std::endl;
}


终端显示的结果确是
0:276804543
1:276804580
2:276680204
3:276806938
4:276679449
5:276804946
6:276931311
7:276846609

可是我不想要冒号跟前面的序号,只想要后面的long型数字,请问大牛该怎么提取?
...全文
164 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
JK853 2015-07-02
  • 打赏
  • 举报
回复
多谢博主,帮了我大忙,把toString(),换为.str()就可以了

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧