2016-11-11 5 views
0

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

ответ

0

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

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