說明:
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
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:未說明
示例:? 1
2
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文件,預設填零即可
示例:? 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 ...