В C# mongodb driver (версия 2.3) очень легко modify существующий документ bson. Однако драйвер C++ (версия v3), по-видимому, предоставляет только просмотр только для чтения существующего документа или создателя для новых документов. Пропустил ли я некоторые функции драйвера C++ или действительно ли драйвер C++ пропустил функцию изменения или же драйвер C# просто смоделировал модификацию, внутренне скопировав исходный документ и добавив модификацию в новый документ?Изменение документов bson с помощью драйверов mongodb C# и C++
0
A
ответ
0
Драйвер C++ моделирует документ BSON внутренне как массив байтов для эффективности, а не как карту или другую структуру данных чтения/записи. Класс C# RawBsonDocument является ближайшим эквивалентом.
Если вам нужно надуть, модифицировать и выкачать на C++, это должно быть сделано пользователями. Например, определите класс/struct, представляющий документ, и конструктор, который принимает bsoncxx::document::view
и выполняет итерацию, чтобы заполнить интересующие структуры. Затем создайте метод, который перемещает членов класса/структуры, добавляет их в новый документ через один из классов-конструкторов и возвращает это.