Beim Hinzufügen eines Arrays zu einem Dokument müssen open_array und close_array gleichzeitig in den Dokumentenstrom geworfen werden. Der folgende Code schlägt fehl (Kompilierzeit) in der letzten Zeile beim Hinzufügen von 'close_array'.MongoDB C++, Hinzufügen eines Arrays zum Dokument fehlgeschlagen
vector<string> List;
...
document Doc;
Doc <<"List" <<open_array;
for (string Str: List) {
Doc <<Str;
}
Doc <<close_array;
Aber ich kenne nicht die Anzahl der Elemente in der 'Liste', um das Dokument zur gleichen Zeit hinzuzufügen. In MongoDB fehlen noch Beispiele für den C++ - Treiber.
Dieser Code funktioniert, aber die Anzahl der Elemente in der 'Liste' ist nicht bekannt.
Doc
<<open_array
<<List[0] <<List[1] <<List[2] <<...
<<close_array;
G ++ Fehler:
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.
Wissen Sie, ob das in 3.0 auch funktioniert? Ich denke, es ist nicht ... –
Ich baue mongodb C++ Treiber 3.1.0 von https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.0.tar.gz – johnlowvale
Gebäude Array wie in der Code in meiner Antwort funktioniert gut – johnlowvale