如何在C ++中使用MongoDB的insert_many()方法?

时间:2017-02-17 18:25:16

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

我正在使用一种方法在MongoDB数据库中存储一些数据。

void save_data(std::vector< class_a > list){
    using namespace std;
    using bsoncxx::builder::stream::document;
    using bsoncxx::builder::stream::finalize;

    std::vector< bsoncxx::document::value > documents;
    for (size_t i = 0; i < list.size(); i++){
        documents.push_back(document{}
            << "field 1" << list[i].get_data_1()
            << "field 2" << list[i].get_data_2()
            << finalize);
    }

    collection.insert_many(documents);
}

我知道该列表已存储了多个class_a的对象。我使用name()对象mongocxx::collection的方法collection来测试它是否可访问。它按预期返回了它的名字。所以我认为有一个客户端。但是insert_many()方法会抛出错误:

  

“mongoc_bulk_operation_execute()需要一个客户端,还有一个尚未设置:通用服务器错误”

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我看到,指针std :: unique_ptr _pool中的函数acquire()返回客户端。