mongodb的c 介面的說明

2021-07-22 12:45:53 字數 4113 閱讀 4789

mongodb c++ 介面說明

說明: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):出錯資訊

示例:?

12

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:未說明

示例:?

12

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文件,預設填零即可

示例:?

1bsonobj 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):是否只刪除匹配的第一條

示例:?

1query 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):是否為符合文件

示例:?

12

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

bsonobj obj = bson("$set"

其效果相當於:

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

C 學習記錄 介面的屬性說明

乙個介面裡時常會定義屬性,這裡對c 介面屬性做乙個總結說明。這裡使用類program實現介面testinte ce,在類裡面通過定義屬性managetest來管理欄位test,起到靈活讀取 編寫或計算私有欄位test值的作用。這裡由於屬性和字段的型別不一致,所以下面的使用例子會出錯 class pr...

C 介面 介面的繼承

類之間可以繼承,和類一樣,介面也允許繼承。c 中介面可以多繼承,介面之間可以互相繼承和多繼承。普通類和抽象類可以繼承介面。乙個類可以同時繼承乙個類和多個介面,但是介面不能繼承類。假如你是一名在職學習的學生,你就具有雙重身份。乙個身份是學生,必須完成學習任務,另一身份是職員,必須完成工作任務。進一步說...

C 介面 介面的實現

c 定義了介面後,就要在子類中實現。c 中通常把子類和父類的關係稱為繼承,子類和介面的關係稱為實現。子類可以繼承乙個父類,可以實現多個介面。介面中不能定義建構函式,所以介面不能例項化。下面我們看例子 using system public inte ce ichoose public class t...