mongodb Linux C++开发环境调研

mongodb Linux安装

下载最新版mongodb,下载链接为:http://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz/download

输入tar –xzvf mongodb-linux-x86_64-2.0.2.tgz解压到/usr/local/mongodb目录下,以下称为根目录,然后在根目录下创建保存数据的data文件夹和log文件夹,然后在log文件夹中新建mongodb.log文件,完成上述操作之后根目录结构如下所示:

.

|-- GNU-AGPL-3.0

|-- README

|-- THIRD-PARTY-NOTICES

|-- bin
|   |-- bsondump

|   |-- mongo

|   |-- mongod

|   |-- mongodump

|   |-- mongoexport

|   |-- mongofiles

|   |-- mongoimport

|   |-- mongorestore

|   |-- mongos

|   |-- mongosniff

|   |-- mongostat

|   `-- mongotop

|-- data

`-- log

`-- mongdb.log

然后进入到bin目录中,输入如下指令即可后台启动mongodb服务器。

./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongodb.log –logappend &

mongodb C++访问


使用C++访问mongodb的一些准备:

1.需要使用一个事先编译好的libmongoclient.a静态库以及相应的一些头文件。

2.需要使用1.34版本以上的boost库。

libmongoclient.a静态库以及相应的头文件在项目中进行包含即可,下面是1.34.1版本的boost库的安装使用方法。

1.34.1版本的boost库的安装方法很简单,只需将其解压到一个目录下,然后将该目录加入到库加载路径中即可,这里我们以/usr/local/lib为例。


将目录加入到库加载路径中的方法如下:

在用户根目录下有一个名为.bash_profile的文件。打开该文件,加入下面的指令:

export LD_LIBRARY_PATH=/usr/local/lib

加入该指令后在控制台中输入source .bash_profile即可。


下面是一个测试样例,它的目录结构如下:
.
|-- bin

|-- doc

|-- include

|   `-- mongo

|       |-- client

|       |   |-- connpool.h

|       |   |-- dbclient.h

|       |   |-- gridfs.h

|       |   |-- model.h

|       |   |-- parallel.h

|       |   `-- syncclusterconnection.h

|       |-- db

|       |   |-- background.h

|       |   |-- btree.h

|       |   |-- client.h

|       |   |-- clientcursor.h

|       |   |-- cmdline.h

|       |   |-- commands.h

|       |   |-- concurrency.h

|       |   |-- curop.h

|       |   |-- cursor.h

|       |   |-- database.h

|       |   |-- db.h

|       |   |-- dbhelpers.h

|       |   |-- dbmessage.h

|       |   |-- diskloc.h

|       |   |-- extsort.h

|       |   |-- filever.h

|       |   |-- index.h

|       |   |-- instance.h

|       |   |-- introspect.h

|       |   |-- jsobj.h

|       |   |-- jsobjmanipulator.h

|       |   |-- json.h

|       |   |-- lasterror.h

|       |   |-- matcher.h

|       |   |-- minilex.h

|       |   |-- module.h

|       |   |-- namespace.h

|       |   |-- nonce.h

|       |   |-- pdfile.h

|       |   |-- query.h

|       |   |-- queryoptimizer.h

|       |   |-- queryutil.h

|       |   |-- rec.h

|       |   |-- reccache.h

|       |   |-- reci.h

|       |   |-- recstore.h

|       |   |-- repl.h

|       |   |-- replset.h

|       |   |-- resource.h

|       |   |-- scanandorder.h

|       |   |-- security.h

|       |   `-- update.h

|       |-- stdafx.h

|       |-- targetver.h

|       `-- util

|           |-- allocator.h

|           |-- array.h

|           |-- assert_util.h

|           |-- atomic_int.h

|           |-- background.h

……

|           |-- optime.h

|           |-- processinfo.h

|           |-- queue.h

|           |-- sock.h

|           |-- thread_pool.h

|           `-- unittest.h

|-- lib

|   `-- libmongoclient.a

`-- src

`-- main.cpp


其中main.cpp的代码如下:


然后在src目录下进行编译,编译指令如下:

g++ -o ../bin/main main.cpp -I../include/mongo ../lib/libmongoclient.a -lboost_thread-mt -lboost_filesystem-mt -lboost_program_options

编译完成后在bin目录下生成可执行文件main

输入./main执行,执行结果如下:

然后查看本地mongodb服务器,结果如下:


测试成功通过。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。