Получить OID (types :: b_oid) в виде строки в драйвере MongoDB C ++ - PullRequest
0 голосов
/ 28 января 2020

Я использую драйвер MongoDB C ++ (версия 3.4.0 для справки). Мне нужно получить _id данного документа. Сначала я беру документ:

bsoncxx::stdx::optional<bsoncxx::document::value> sub = conn["mydb"]["csubs"].find_one(...);

, чтобы получить доступ к _id следующим образом:

sub->view()["_id"].get_oid();

Пока все хорошо.

Как Насколько я прочитал в драйвере API этот объект имеет тип types::b_oid. Однако мне нужно получить его как std::string.

Удивительно, но я не нашел ни одного метода в документации types::b_oid класса для преобразования строк. Я имею в виду типичный метод to_string(), поэтому я могу вызвать что-то вроде:

sub->view()["_id"].get_oid().to_string();

Возможно, я что-то упускаю (потому что сценарий использования кажется слишком очевидным :), но через некоторое время проверяет документацию Я не нашел решения. Любая помощь приветствуется!

1 Ответ

1 голос
/ 28 января 2020

Я думаю, вы можете позвонить to_string() из поля value:

sub->view()["_id"].get_oid().value.to_string();

Вот пример из mongocxx github repo

...