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):出錯信息

示例:

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

示例:

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;

對結果集的操作:

int uid=0;
string name="";
while(cursor->more())
{
    BSONObj p = cursor->next();
    uid = p["uid"].Int();
    name = p["name"].String();
    count << uid << " " << name << endl;
}

(4)插入

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

  • ns(IN):命名空間,db_name.collection_name
  • obj(IN):插入的列
  • flags(IN):詳見API文檔,默認填零即可

示例:

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

示例:

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):是否爲符合文檔

示例:

Query query = QUERY("uid"<<10001);
BSONObj obj = BSON("$set"<<"name"<<"habadog1203");(#add可能有誤,待改)
pConn->update(db+"."+collection, query, obj, false, false);

其效果相當於:

update shool.student set name=”habadog1203 where uid=10001;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章