MongoDB入门——Driver安装篇

MongoDB server的安装配置比较简单,去官网上下载一个适合自己版本的server,按照官方documents配置就好。


下面是本人在windows下安装C和C++ driver的流程:


C driver:


  1. 安装python,我使用的是python2.7.5,下载地址:http://www.python.org/download/
  2. 安装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
  3. 下载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
  4. 编译完成后,推荐自己根据官方给的API写一写测试程序(要把lib,dll以及相关的头文件与工程关联起来),c driver解压目录下的test源码有一定错误,如果你想尝试修改,可以先scons test编译一下找到错误所在之处进行修改。
  5.  最简单的测试程序可以是这样的:
    #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:

  1. 安装python和scons
  2. 安装boost库(1.4.9),下载地址:http://www.boost.org/users/history/,下载解压后,使用cmd,将工作目录设置为boost目录,输入下列两行指令:
    bootstrap
    .\b2
    整个过程至少20min,安装后在stage\lib文件夹下有所有的lib文件
  3. 下载mongoDB源码(source),下载地址:http://www.mongodb.org/downloads。使用scons build,命令如下:
    scons --dd --32 mongoclient.lib
    即可得到mongoclient.lib
  4. 测试。在测试过程中,注意将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;
    }
    


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值