Ich möchte den mongo-cxx-Treiber verwenden, um Dateien hochzuladen, kann aber keinen Weg finden. Versucht, das gridfs-Feature von mongodb zu verwenden, konnte aber nicht integrieren. Verwenden der aktuellen stabilen Version mongodb-cxx-driver (3.1.1).Wie Dateien in MongoDB über Mongocxx C++ - Treiber hochladen?
gridFs wirft Fehler beim Versuch Datei wie folgt zu speichern:
gfs.storeFile("filepath", "filename");
Fehler: store_file: /usr/include/boost/smart_ptr/scoped_ptr.hpp:99: T * boost :: scoped_ptr: : operator ->() const [mit T = mongo :: AtomicWord]: Assertion `px! = 0 'ist fehlgeschlagen. Abgebrochen (Core-Dump)
Auch wenn Mongo-Client initialisiert wird, bietet es Segmentierungsfehler Fehler.
#include "mongo/client/dbclient.h"
#include <iostream>
#include <cstdlib>
using namespace std;
using namespace mongo;
int main(int argc, const char** argv) {
cout<<"good so far"<<endl;
client::GlobalInstance instance; //everytime producing segmentation fault
if (!instance.initialized()) {
std::cout << "failed to initialize the client driver: " << instance.status() << std::endl;
return EXIT_FAILURE;
}
else
{
std::cout << "Successfully initialized the client driver: " << instance.status() << std::endl;
}
return EXIT_SUCCESS;
}
Vielen Dank. Eine Sache, die ich nicht verstehen kann, warum Client-Treiber wie Legacy-Client im Ordner ** "mongo-cxx-driver/src/mongo/client/examples" ** initialisiert wird. Und eine andere Frage könnten Sie mir bitte einen Kopf, warum Segmentierung Fehler auftritt, wenn ich Legacy-Client verwenden? –
Können Sie eine [SSCCE] (http://sscce.org) angeben, die den Segfault anzeigt? – xdg
Ich habe die Frage bearbeitet und einen Beispielcode zur Verfügung gestellt. Danke. –