Сбой учебной программы MongoDB C ++: ‘mongocxx :: v_noabi :: logic_error’

Я пытаюсь что-то сделать с C ++ и MongoDB. До сих пор было множество проблем, но я справился.

Тогда я получил это:

terminate called after throwing an instance of 'mongocxx::v_noabi::logic_error'
what():  invalid use of default constructed or moved-from mongocxx::client object
Aborted

И, честно говоря, я теряю надежду. Вот пример, который я пытаюсь запустить:
https://docs.mongodb.com/getting-started/cpp/insert/.

Ошибка появляется при попытке запустить скомпилированную программу. Я в состоянии скомпилировать и запустить пример «hellomongo» просто отлично, так что, по крайней мере, отчасти, драйвер установлен правильно.

Мой код:

#include <chrono>

#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/types.hpp>

#include <mongocxx/client.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/uri.hpp>

using bsoncxx::builder::stream::document;
using bsoncxx::builder::stream::open_document;
using bsoncxx::builder::stream::close_document;
using bsoncxx::builder::stream::open_array;
using bsoncxx::builder::stream::close_array;
using bsoncxx::builder::stream::finalize;

int main(int, char**)
{

mongocxx::instance inst{};
mongocxx::client conn{};

auto db = conn["test"];

bsoncxx::document::value restaurant_doc =
document{} << "address" << open_document << "street"<< "2 Avenue"<< "zipcode"<< "10075"<< "building"<< "1480"<< "coord" << open_array << -73.9557413 << 40.7720266 << close_array
<< close_document << "borough"<< "Manhattan"<< "cuisine"<< "Italian"<< "grades" << open_array << open_document << "date"<< bsoncxx::types::b_date { std::chrono::system_clock::time_point {
std::chrono::milliseconds { 12323 } } } << "grade"<< "A"<< "score" << 11 << close_document << open_document << "date"<< bsoncxx::types::b_date { std::chrono::system_clock::time_point {
std::chrono::milliseconds { 12323 } } } << "grade"<< "B"<< "score" << 17 << close_document << close_array << "name"<< "Vella"<< "restaurant_id"<< "41704620" << finalize;

// We choose to move in our document here, which transfers ownership to insert_one()
auto res = db["restaurants"].insert_one(std::move(restaurant_doc));
}

Я использую следующую команду для компиляции примера:

c++ --std=c++11 test.cpp -o test $(pkg-config --cflags --libs libmongocxx)

Любая помощь приветствуется! У меня очень мало опыта работы с C ++, поэтому я немного растерялся, в чем может быть проблема.

1

Решение

Как указал acm, документы на docs.mongodb.com устарели. Github примеры работают нормально. Я отмечу это как ответ.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]