Ошибка подтверждения драйвера MongoDB C ++

Эта проблема

Когда я пытаюсь вставить документ в MongoDB с помощью драйвера C ++, я получаю следующее сообщение об исключении:

Wed Feb 27 15:21:38   Assertion failure p src/mongo/client/dbclientinterface.h 1096
0 assertion src/mongo/client/dbclientinterface.h:1096

Из того, что я могу сказать, кажется, что-то связано с номером порта? dbclientinterface.h: 1096 содержит следующую строку:

MessagingPort& port() { verify(p); return *p; }

Настройка соединения (main.cpp)

mongo::DBClientConnection DBConn( "localhost" );
mongo::DBClientConnection DBConn( "localhost:27017" ); // I've also tried this...

Вставка документа (different_file.h)

while( m_Entries.size() ){
JsonBox::Value Data( m_Entries.front() );

try {
std::stringstream   JSONDoc;
mongo::BSONObj      BSONDoc;

Data["doc"].writeToStream( JSONDoc, false );
BSONDoc = mongo::fromjson( JSONDoc.str() );

// std::cout << Data["ns"].getString() << std::endl;
// std::cout << BSONDoc.toString() << std::endl;

// This is where the exception is thrown...
m_DBConn.insert( Data["ns"].getString(), BSONDoc );

} catch( const mongo::DBException& e ){
std::cout << e.toString() << std::endl;

}

m_EntriesMutex.lock();
m_Entries.pop();
m_EntriesMutex.unlock();

}

1

Решение

Я коротко покопался в документации и наткнулся на поразительный факт, что вы не можете подключиться к базе данных mongodb из конструктора. Я должен был изменить это:

mongo::DBClientConnection DBConn( "localhost" );

к этому:

mongo::DBClientConnection DBConn;

DBConn.connect( "localhost" );
1

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

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

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