初学mongodb笔记-搭建环境

来源:互联网 发布:淘宝上二手房翻新 编辑:程序博客网 时间:2024/05/16 04:31

遇到一个奇怪个问题

用Eclipse的插件MonjaDb习惯性在打完use 数据库的时候多打了个分号,结果数据库名字就带了个分号了...而且dropdatabase还删不掉。尝试用MongoDb的控制台也删不掉,后面发现在控制台use数据库名后面打两个分号就能进入带一个分号的数据库,也就能删除了= =


安装

接下来是编译的问题,搞了一天终于编好了。从官网下的那个mongodb with c++ driver我用scons一直提示编译器不工作。怎么弄都不行,其实去github上面下它的只有c++driver的版本就能编译。我的是vs2012,编译前需要把编译boost成静态库,解压后用vs的编译命令行运行文件夹中的bat,然后用bjam variant=release --toolset=msvc-11.0 --build-type=complete  link=static runtime-link=static  threading=multi address-model=64 install编译成静态库,用install省得后面找来找去,直接去C盘Boost目录复制就行了,我编的是64位release,因为调试需要也要编debug版,改改命令就行了,其实只用其中几个库,不过项目中用到boost,所以一起编了,如果不想等太久就加上--with-filesystem --with-thread --with-date_time --with-program_options。然后进入driver目录,用scons命令编译,使用这个命令要先去下python和scons,装好设置好PATH环境变量就行。命令是scons --64 --cpppath="C:\Boost\include\boost-1_57" --libpath="C:\Boost\lib" install如果编debug版就写--dbg=on,路径什么的照着改就行。编好后程序会告诉你文件丢哪了,复制出来用就行了。编译途中可能会提示某些库打不开,因为它找的名字跟前面编译出来的boost库名字不一样,改改就能继续往下编。新版好像还可以编成dll,改改命令就行了。另外python你要注意driver中的提示是用什么版本,我用的这版是2.7。

然后是在vs2012中导入库的问题,就是设置一下,没什么可说的。

上面的是编译legacy的, 里面没有连接池等一些功能, 如果需要可以编译26compat(它的github下拉列表选择), 使用下面的编译

scons --prefix="安装目录" --32 --use-system-boost  --cpppath="boost include目录"    --libpath="boost lib目录" --dbg=on --opt=off --full install-mongoclient

不同编译需求改改就行.


使用

整体感觉c++driver比C#driver难用多了,也可能是我比较熟C#的原因。

使用前#include"mongo/client/dbclient.h"using namespace mongo,声明DBClientConnection,在用之前需要初始化一下

mongo::client::GlobalInstance instance;    if (!instance.initialized()) {        std::cout << "failed to initialize the client driver: " << instance.status() << endl;        return EXIT_FAILURE;    }

还需要

#pragma comment(lib,"libmongoclient.lib")
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"DbgHelp.lib")

然后就能开始用了,相比C#的设置一下都不用connect就能随便用,这边的步骤挺多。

关于c#的driver,设置好引用和using就能用了,driver附带了一个api文档,很详细很好用。


基本上以上讲到的东西就是我初学遇到的问题,其它编程中的问题再另说了

0 0
原创粉丝点击