// The document I want to add data to and extract it back from c++
bsoncxx::builder::stream::document data_builder,
// I want to try and save this array in my document , as I want to populate it later
bsoncxx::builder::stream::array mybsonarr;
for(float i = 0 ; i < 5 ; i = i + 0.1f){
mybsonarr << i;
}// Now this line Throws an error
data_builder << "_id" << 5 << "my_array" << &mybsonarr;
Итак, как я могу добавить свой массив, а также как я могу считать обратно мой массив с плавающей точкой в массив или вектор?
Для добавления массива в потоковый документ используйте open_array
:
using bsoncxx::builder::stream::document;
using bsoncxx::builder::stream::open_array;
using bsoncxx::builder::stream::close_array;
using bsoncxx::builder::stream::finalize;
document data_builder{};
data_builder << "_id" << 5;
auto array_builder = data_builder << "my_array" << open_array;
for (float i = 0 ; i < 5 ; i = i + 0.1f) {
array_builder << i;
}
array_builder << close_array;
bsoncxx::document::value doc = data_builder << finalize;
std::cout << bsoncxx::to_json(doc) << std::endl;
Других решений пока нет …