2

我正在使用一种方法将一些数据存储在 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);
}

我知道该列表已存储超过 1 个class_a. 我使用对象的方法name()来测试它是否可访问。它按预期返回了它的名称。所以有一个客户集,我想。但是该方法会引发错误:mongocxx::collectioncollectioninsert_many()

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

我究竟做错了什么?

4

1 回答 1

0

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

于 2017-02-21T14:03:37.830 回答