Quiero usar el controlador mongo-cxx para cargar archivos, pero no puedo encontrar la manera. Intenté usar la función gridfs de mongodb pero no pude integrar. Usando la versión estable actual mongodb-cxx-driver (3.1.1).
gridFs arroja un error cuando intenta almacenar un archivo como este:
gfs.storeFile("filepath", "filename");Error: store_file: /usr/include/boost/smart_ptr/scoped_ptr.hpp:99: T* boost::scoped_ptr::operator->() const [with T = mongo::AtomicWord]: Afirmación `px != 0' ha fallado. Anulado (núcleo volcado)
Además, si se inicializa el cliente mongo, proporciona un error de falla de segmentación .
#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; }Parece el cliente heredado, no la versión estable 3.1.1.
GridFS aún no está disponible para el cliente estable (la prioridad inicial era las características esenciales de CRUD), pero GridFS está en desarrollo activo y estará disponible en la versión 3.2.0 que se espera para los próximos dos meses. Si desea controlar el progreso, el ticket JIRA relevante es CXX-1130 .