2016-11-11 9 views
0

c#mongodbドライバ(バージョン2.3)では、既存のbsonドキュメントをmodifyにするのは非常に簡単です。しかし、C++ドライバ(バージョンv3)は、既存のドキュメントまたは新しいドキュメントのビルダーの読み取り専用ビューしか提供していないようです。私は、C++ドライバのいくつかの機能を見落としてしまったのですか?あるいは、C++ドライバが本当に変更機能を逃しているのですか?あるいは、C#ドライバは、元のドキュメントを内部的にコピーして新しいドキュメントに変更を加えただけです。mongodbのc#とC++ドライバでbsonドキュメントを変更する

答えて

0

C++ドライバは、マップやその他の読み取り/書き込みデータ構造としてではなく、効率的にバイト配列としてBSONドキュメントをモデル化します。 C#RawBsonDocumentクラスは、最も近いクラスです。

C++で拡張、変更、および展開する必要がある場合は、ユーザーが行う必要があります。たとえば、ドキュメントを表すクラス/構造体、およびbsoncxx::document::viewを取り、目的の構造体フィールドを移入するコンストラクタを定義します。その後、クラス/構造体のメンバーを歩き回り、それらをビルダークラスの1つを介して新しいドキュメントに追加し、それを返すメソッドを作成します。

関連する問題