2017-01-06 1 views
1

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; 
} 

Antwort

0

Das sieht aus wie der Legacy-Client, nicht die stabile 3.1.1-Version.

GridFS ist noch nicht für den stabilen Client verfügbar (anfängliche Priorität war bei wesentlichen CRUD-Funktionen), aber GridFS ist in Entwicklung und wird in der Version 3.2.0 verfügbar sein, die in den nächsten paar Monaten erwartet wird. Wenn Sie den Fortschritt im Auge behalten möchten, ist das relevante JIRA-Ticket CXX-1130.

+0

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? –

+0

Können Sie eine [SSCCE] (http://sscce.org) angeben, die den Segfault anzeigt? – xdg

+0

Ich habe die Frage bearbeitet und einen Beispielcode zur Verfügung gestellt. Danke. –

Verwandte Themen