mongocxxドライバを正常にインストールしました。今度は、データベースからデータを接続して照会するクラスを作成しようとしました。このようなコンストラクタでクエリを書くと、Mongocxx接続エラー
DBConnection::DBConnection()
{
mongocxx::instance instance{};
mongocxx::uri uri("mongodb://localhost:27017");
mongocxx::client client(mongocxx::uri{});
coll = client["testdb"]["testcollection"];
auto curs = coll.find(bsoncxx::builder::stream::document{} << finalize);
for (auto doc: curs) {
std::cout << bsoncxx::to_json(doc) << "\n";
}
}
のように動作します。
しかし、私はこの
DBConnection::DBConnection()
{
mongocxx::instance instance{};
mongocxx::uri uri("mongodb://localhost:27017");
mongocxx::client client(mongocxx::uri{});
coll = client["testdb"]["testcollection"];
}
void DBConnection::loadData() {
mongocxx::cursor cursor = coll.find({});
for (auto doc: cursor) {
std::cout << bsoncxx::to_json(doc) << "\n";
}
}
のように二つの機能に分けた場合、それはエラーを与えた:src/mongoc/mongoc-topology-scanner.c:754 mongoc_topology_scanner_get_error(): precondition failed: ts
。
なぜわからないのですか?これをどうすれば解決できますか?
どのようにして1つの関数から別の関数にcollを取得しましたか?これはクラスのメンバですか? – pm100
はい、 'coll'はクラスのプライベートメンバーです – GAVD