MongoDB server的安装配置比较简单,去官网上下载一个适合自己版本的server,按照官方documents配置就好。
下面是本人在windows下安装C和C++ driver的流程:
C driver:
- 安装python,我使用的是python2.7.5,下载地址:http://www.python.org/download/
- 安装scons,下载地址:http://sourceforge.net/projects/scons/files/scons/2.3.0/,我使用的是zip包解压后使用cmdpython安装的方式,例如:
D:\scons\>cd build\scons D:\scons\build\scons>python setup.py install
- 下载mongo c driver,下载地址:https://github.com/mongodb/mongo-c-driver,在cmd中将工作目录切换至cdriver解压目录,使用scons --m32编译生成32bit版本的lib和dll文件。请注意,编译之前,请在bson.h文件中根据你的系统环境修改宏定义以防止出现int64_t的错误,详情可参阅官方文档http://api.mongodb.org/c/current/building.html。
- 编译完成后,推荐自己根据官方给的API写一写测试程序(要把lib,dll以及相关的头文件与工程关联起来),c driver解压目录下的test源码有一定错误,如果你想尝试修改,可以先scons test编译一下找到错误所在之处进行修改。
- 最简单的测试程序可以是这样的:
#include <stdio.h> #include "mongo.h" int main() { mongo conn[1]; int status; mongo_init_sockets(); status = mongo_client( conn, "127.0.0.1", 27017 ); if( status != MONGO_OK ) { switch ( conn->err ) { case MONGO_CONN_NO_SOCKET: printf( "no socket!\n" ); return 1; case MONGO_CONN_FAIL: printf( "connection fail!\n" ); return 1; case MONGO_CONN_NOT_MASTER: printf( "not master!\n" ); return 1; } } printf( "connection success!\n"); mongo_destroy( conn ); return 0; }
C++ driver:
- 安装python和scons
- 安装boost库(1.4.9),下载地址:http://www.boost.org/users/history/,下载解压后,使用cmd,将工作目录设置为boost目录,输入下列两行指令:
整个过程至少20min,安装后在stage\lib文件夹下有所有的lib文件bootstrap .\b2
- 下载mongoDB源码(source),下载地址:http://www.mongodb.org/downloads。使用scons build,命令如下:
即可得到mongoclient.libscons --dd --32 mongoclient.lib
- 测试。在测试过程中,注意将boost,mongodb等的路径添加为项目的包含路径,将boost和mongoclient的lib文件路径添加到项目的lib路径中。此外,相关的头文件路径也要设置好,C/C++代码生成下的运行库请选择/MTd,下面是官方的测试程序:
#include <cstdlib> #include <iostream> #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; }