Создать bsoncxx :: builder :: basic :: document из строки? - PullRequest
1 голос
/ 04 ноября 2019

Есть ли способ создать bsoncxx :: builder :: basic :: document из std :: string?

Я знаю, как создать документ, используя такие функции mongocxx, как make_document, kvp, make_array, а также функции потоковой передачи.

Но я хочу знать, можем ли мы создатьstd :: string представление документа и преобразование его в bsoncxx :: builder :: basic :: document?

1 Ответ

0 голосов
/ 10 ноября 2019

Если предположить, что std::string содержит JSON, тогда да. Вы можете вызвать bsoncxx::from_json.

Если каким-то образом буфер std::string содержит данные BSON, а не JSON, вы можете скопировать данные внутри строки в новый буфер и использовать один из первых двух * 1006. * конструкторы, которые становятся владельцем буфера.

Вы также можете создать временный bsoncxx::document::view поверх буфера в std::string, передав базовые .data() и .length() строки двумаргумент bsoncxx::view::view конструктор, а затем передать это представление соответствующему bsoncxx::value конструктору, который будет копировать данные в представлении.

...