For example, if I do this in a shell
> db.numbers.save( { name: "fibonacci", arr: [0, 1, 1, 2, 3, 5, 8, 13, 21] } )
Then I want to get arrin my C ++ program.
After I got BSONObj, I can get namewith
std::string name = p.getStringField("name");
where pis the BSON object.
But what is the correct way to get elements from an array and store them in std :: vector?
EDIT:
After some research, I found the BSONElement doxygen documentation and did it.
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());
But I'm still not sure if this is the right way.
Stals source
share