Изменение документов bson с помощью драйверов mongodb c# и c++

В драйвере С# mongodb (версия 2.3) очень легко изменить существующий документ bson. Однако драйвер С++ (версия v3), по-видимому, обеспечивает только представление существующего документа только для чтения или построитель новых документов. Я пропустил некоторые функции драйвера С++, или драйвер С++ действительно пропускает функциональность модификации, или драйвер С# просто имитировал модификацию, внутренне скопировав исходный документ и добавив модификацию в новый документ?


person MarkusParker    schedule 11.11.2016    source источник


Ответы (1)


Драйвер C++ внутренне моделирует документ BSON как массив байтов для повышения эффективности, а не как карту или другую структуру данных для чтения/записи. Класс C# RawBsonDocument является ближайшим эквивалентом.

Если вам нужно надуть, изменить и сдуть в C++, это должны сделать пользователи. Например, определите класс/структуру, представляющую документ, и конструктор, который принимает bsoncxx::document::view и повторяет его, чтобы заполнить интересующие поля структуры. Затем создайте метод, который просматривает члены класса/структуры, добавляет их в новый документ через один из классов построителя и возвращает его.

person xdg    schedule 11.11.2016