MongoDB C 介面說明

2021-07-09 11:28:21 字數 4266 閱讀 4162

說明:

in表示輸入引數;

out表示輸出引數;

(1)建構函式:

dbclientconnection(bool auto_connect, 0, double so_timeout);

auto_connect(in):連線失敗後自動重連

so_timeout(in):非連線超時,tcp的讀寫超時

(2)連線mongo:

bool connect(string server, &string errmsg);

返回值:成功/失敗

server(in):連線的伺服器

errmsg(out):出錯資訊

示例:? 1

2

3

4

5

6

7

boolauto_connect =true;

doubleso_timeout = 3;

string host ="127.0.0.1";

string port ="3003";

string errmsg ="";

dbclientconnection pconn =newdbclientconnection(auto_connect, 0, so_timeout);

pconn->connect(host+":"+port, errmsg);

(3)查詢

auto_ptr query(const string &ns, query query, int ntoreturn, int ntoskip,

const bsonobj *fieldstoreturn, int queryoptions , int batchsize);

返回值:結果集

ns(in):命名空間,db_name.collection_name

query(in):查詢的條件,相當於mysql中的where

ntoreturn:返回結果條數,相當於mysql中的limit

ntoskip:跳過的結果條數,相當於mysql中的offset

fieldstoreturn:返回列集合

queryoptions:詳見queryoptions這個列舉,填0即可

batchsize:未說明

示例:? 1

2

3

4

5

6

7

8

string db ="shool";

string collection ="student";

query condition = query("age"<<20);

intlimit = 10;

intoffset = 5;

bsonobj columns = bson("uid"<<1<<"name"<<1);

auto_ptr cursor;

cursor = pconn->query(db+"."+collection, condition, limit, offset, columns, 0, 0);

其效果相當於:

select uid,name from shool.student where age=20 limit 5,10;

對結果集的操作:?

1

2

3

4

5

6

7

8

9

intuid=0;

string name="";

while(cursor->more())

(4)插入

void insert(const string &ns, bsonobj obj, int flags);

ns(in):命名空間,db_name.collection_name

obj(in):插入的列

flags(in):詳見api文件,預設填零即可

示例:? 1

bsonobj insert = bson("uid"<<10001<<"name"<<"skean1017"); pconn->insert(db+"."+collection, insert, 0);

其效果相當於:

insert into shool.student (uid, name) values (10001, 「skean1017″);

(5)刪除

void remove(const string &ns, query query, bool justone);

ns(in):命名空間,db_name.collection_name

query(in):查詢條件

justone(in):是否只刪除匹配的第一條

示例:? 1

query query = query("name"<<"skean1017"); pconn->remove(db+"."+collection, query,true);

其效果相當於:

delete from shool.student where name=」skean1017″;

(6)修改

void update(const string &ns , query query , bsonobj obj , bool upser , bool multi);

ns(in):命名空間,db_name.collection_name

query(in):查詢條件

obj(in):修改後的值

upser(in):是否upser,如果不存在則插入記錄

multi(in):是否為符合文件

示例:? 1

2

query query = query("uid"<<10001);

bsonobj obj = bson("$set""."+collection, query, obj,false,false);

其效果相當於:

update shool.student set name=」habadog1203″ where uid=10001;

編譯mongodb C 驅動 windows

這個mongodb 的c 驅動著實費了我一番功夫,不過終於成功跑通了。注意這裡的 boost 版本我們選擇 1.49.0,方便起見,我是全部安裝的,安裝完成之後 除了boost stage doc 這三個目錄其餘全部刪除,這個時候大小約1.6g,遠沒有5g那麼大,好多obj檔案都是編譯的中間檔案 之...

mongodb c 插入資料效率

mongodb的資料插入速度是其乙個亮點,同樣的10000條資料,插入的速度要比mysql和sqlserver都要快,當然這也是要看使用者怎麼個使用法,你 如果10000次寫入使用10000次連線,那也是比不過其他資料庫使用事務一次性提交的速度的。同樣,mongo也提供的一次性插入巨量資料的方法,因...

MongoDB C 開發環境搭建

本部落格在linux下編譯使用c mongodb driver the c driver uses libbson and the mongodb c driver internally.安裝c driver前需要先安裝libbson 和 c driver sudo apt get install ...