如何通过mongocxx C ++驱动程序在MongoDB中上传文件?

时间:2017-01-06 11:20:02

标签: c++ mongodb mongo-cxx-driver

我想使用mongo-cxx-driver上传文件,但无法找到方法。试图使用mongodb的gridfs功能,但无法集成。使用当前稳定版mongodb-cxx-driver(3.1.1)。

尝试存储这样的文件时,

gridFs会抛出错误:

gfs.storeFile("filepath", "filename");

错误: store_file:/usr/include/boost/smart_ptr/scoped_ptr.hpp:99:T * boost :: scoped_ptr :: operator->()const [with T = mongo: :AtomicWord]:断言`px!= 0'失败。 中止(核心倾销)

此外,如果初始化mongo客户端,则会提供分段错误错误。

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

1 个答案:

答案 0 :(得分:0)

这看起来像旧版客户端,而不是稳定的3.1.1版本。

GridFS尚不适用于稳定客户端(初始优先级基于CRUD功能),但GridFS正在积极开发中,并将在未来几个月预期的3.2.0版本中提供。如果您想留意进度,相关的JIRA票证为CXX-1130