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
bool
auto_connect =
true
;
double
so_timeout = 3;
string host =
"127.0.0.1"
;
string port =
"3003"
;
string errmsg =
""
;
dbclientconnection pconn =
new
dbclientconnection(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);
int
limit = 10;
int
offset = 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
int
uid=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...