Например, если я сделаю это в оболочке
> db.numbers.save( { name: "fibonacci", arr: [0, 1, 1, 2, 3, 5, 8, 13, 21] } )
, тогда я хочу получить arr
в своей программе на С++.
После того, как я получил BSONObj, я могу получить name
с помощью
std::string name = p.getStringField("name");
, где p
— объект BSON.
Но как правильно получить элементы из массива и сохранить их в стандартный ::вектор?
РЕДАКТИРОВАТЬ:
После дополнительных исследований я нашел документацию 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());
Но я все еще не уверен, что это правильный путь.