例如,如果我在 shell 中执行此操作
> db.numbers.save( { name: "fibonacci", arr: [0, 1, 1, 2, 3, 5, 8, 13, 21] } )
然后我想进入arr
我的 C++ 程序。
在我得到 BSONObj 之后,我可以name
得到
std::string name = p.getStringField("name");
p
BSON 对象在哪里。
但是从数组中获取元素并将它们保存到 std::vector 中的正确方法是什么?
编辑:
经过更多研究后,我找到了 BSONElement doxygen 文档并制作了这个。
std::vector<int> arr;
std::vector<BSONElement> v = p.getField("arr").Array();
for(std::vector<BSONElement>::iterator it = v.begin(); it != v.end(); ++it)
arr.push_back(it->numberInt());
但我仍然不确定这是否是正确的方法。