2015-09-27 82 views
2

嘗試在Windows 7中使用C++ driver設置簡單的MongoDB數據庫連接。我使用Visual C++ compiler 19代替x86,32-bit MongoDB 3.0.6,Boost 1_59_0,Mongo legacy 1.0.5 C++ driver在Windows中使用MongoDB C++驅動程序

驅動程序編譯OK使用命令

scons --cpppath=d:\boost_1_59_0 --libpath=d:\boost_1_59_0\stage\lib --msvc-host-arch=x86 install 

計劃是

#include <cstdlib> 
#include <iostream> 

using namespace std; 
#include <WinSock2.h> 
#include <windows.h> 

#include "mongo/client/dbclient.h" 

void run() { 
    mongo::DBClientConnection c; 
    c.connect("localhost"); 
} 

int main() { 
    try { 
    run(); 
    std::cout << "connected ok" << std::endl; 
    } catch(const mongo::DBException &e) { 
    std::cout << "caught " << e.what() << std::endl; 
    } 
    return EXIT_SUCCESS; 
} 

程序編譯使用

cl /EHsc /I"c:\mongo-cxx-driver-legacy-1.0.5\build\install\include" /I"d:\boost_1_59_0" /DSTATIC_LIBMONGOCLIENT mdb.cpp c:\mongo-cxx-driver-legacy-1.0.5\build\install\lib\libmongoclient-s.lib /link /LIBPATH:"D:\boost_1_59_0\stage\lib" ws2_32.lib 

但是當我運行程序時,得到錯誤信息

陷入無法連接無法初始化連接到localhost,地址是無效

server運行OK,因爲我可以通過shell訪問,添加記錄等

這是我第一次編程MongoDB我有點卡住了。有什麼建議麼?

回答

2

好了,問題解決了(感謝stevepowell.ca/mongo-db-1.html)。以下是遇到此問題的其他人的答案:

Windows在設置連接之前需要初始化客戶端。

#include <cstdlib> 
#include <iostream> 
#include <WinSock2.h> 
#include <windows.h> 
#include <memory> 

#include "mongo/client/dbclient.h" 

using namespace mongo; 
using namespace std; 

void run() { 
    mongo::client::initialize(); // this line is new 
    mongo::DBClientConnection c; 
    c.connect("localhost"); 
} 

int main() { 
    try { 
    run(); 
    std::cout << "connected ok" << std::endl; 
    } catch(const mongo::DBException &e) { 
    std::cout << "caught " << e.what() << std::endl; 
    } 
    return EXIT_SUCCESS; 
} 

我希望這已經在教程中!

向上和向上。

+0

如果你指的是本教程https://github.com/mongodb/mongo-cxx-driver/wiki/Tutorial,那麼它*在本教程中是'初始化...'部分的第一個鏈接:https://github.com/mongodb/mongo-cxx-driver/wiki/Tutorial#initializing-the-driver-library,鏈接到https://github.com/mongodb/mongo-cxx-driver/wiki/Configuring傳統驅動程序,它非常清楚地識別需要初始化驅動程序。 – acm

+0

謝謝。我正在查看https://mongodb-documentation.readthedocs.org/en/latest/ecosystem/tutorial/getting-started-with-cpp-driver.html中的示例,該示例沒有調用。 –

+0

我可以問一下,那些指向那些(可怕的,鏡像的,過時的)文檔,而不是在mongodb.org上提供的官方文檔是什麼?特別是https://docs.mongodb.org/ecosystem/drivers/ – acm