Как сохранить массив mongodb в вектор с помощью драйвера C++?

Например, если я сделаю это в оболочке

> 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());

Но я все еще не уверен, что это правильный путь.

5
задан twid 11 October 2014 в 16:47
поделиться