我在使用c ++ mongo db驱动程序时遇到问题。我下载了“legacy”分支,并使用vc12.0自动使用/ MD开关自行构建。 我试图连接到我的数据库并从集合中检索一些字段,但得到了奇怪的异常。我正在使用QT 5.4,代码是:
auto status = mongo::client::initialize();
std::string errmsg;
if(status.isOK())
{
try
{
mongo::HostAndPort serv("127.0.0.1:27017");
c.connect(serv,errmsg);
}
catch( const mongo::DBException &e ) {
QString qstr(e.what());
qDebug() << "caught " << qstr;
}
mongo::Query query = mongo::Query("{'name':''}");
auto test = c.findOne("database.clients",query);
}
在findone行上我得到了异常: http://rghost.ru/7PsTG9Sxc/image.png
在c ++驱动程序中执行find / findone查询的正确方法是什么? 并且,请给我另一个mongo驱动程序函数的工作示例,如何在c ++上正确运行它。
更新
Stack Trace异常的屏幕截图:
我猜这是std :: string的一些问题?
更新2
好的,我在qt creator中创建了一个RELEASE版本,mongo驱动程序与我的programm版本构建工作正常。似乎我的程序/ MDd与/ MD mongodriver冲突。但是,我想用/ MDd编译mongodb驱动程序,所以我可以使用调试器,但是!当我使用dbg = on构建驱动程序时,我只获得一个库:libmongoclient-gd.lib。没有dll,没有“lubmongoclient”调试内置,就像这个驱动程序是什么?甚至可以使用/ MDd构建它