文書に配列を追加するときに、文書ストリームに投げるときにopen_arrayとclose_arrayが同時に来なければなりません。 'close_array'を追加すると、最後の行で次のコードが失敗します(コンパイル時)。MongoDB C++、配列に文書を追加できません
vector<string> List;
...
document Doc;
Doc <<"List" <<open_array;
for (string Str: List) {
Doc <<Str;
}
Doc <<close_array;
しかし、私は同時に文書に追加するには「リスト」内の要素の数を知りません。 MongoDBにはまだC++ドライバの例がありません。
このコードは機能しますが、 'List'の項目数はわかりません。
Doc
<<open_array
<<List[0] <<List[1] <<List[2] <<...
<<close_array;
G ++エラー:
content.cpp:65:7: error: no match for ‘operator<<’ (operand types are ‘bsoncxx::v_noabi::builder::stream::document’ and ‘const bsoncxx::v_noabi::builder::stream::close_array_type’)
Doc <<close_array;
~~~~^~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
あなたが知っているだろうことに留意すべき
?私はそれがないと思う... –
https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.0.tar.gzからmongodb C++ドライバ3.1.0をビルド – johnlowvale
私の答えのコードは正常に動作します – johnlowvale