標籤:boost c++ linux mongodb
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伺服器,結果如下:
測試成功通過。
mongodb Linux C++開發環境調研