说明: * IN表示输入参数; * OUT表示输出参数;
(1)构造函数:
DBClientConnection(bool auto_connect, 0, double so_timeout);
(2)连接mongo:
bool connect(string server, &string errmsg);
示例:
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);
示例:
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);
示例:
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);
示例:
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);
示例:
Query query = QUERY("uid"<<10001);
BSONObj obj = BSON("$set"<update(db+"."+collection, query, obj, false, false);
其效果相当于:
update shool.student set name=”habadog1203″ where uid=10001;
删除数据的接口说明:
删除mongodb集合中的数据可以使用remove()函数。remove()函数可以接受一个查询文档作为可选参数来有选择性的删除符合条件的文档。
remove()函数不会删除集合本身,同时,原有的索引也同样不会被删除。
删除文档是永久性的,不能撤销,也不能恢复的。因此,在执行remove()函数前先用find()命令来查看下是否正确,是个比较好的习惯啦。
1. 删除"ban_friends_id":"BAN121113"数据
2. 删除所有数据
3. 删除集合
4. 删除整个数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
>
show
dbs
local
0.078125GB
ttlsa
_com
0.203125GB
>
db
ttlsa_com
>
db
.
ttlsa_com
.
getDB
(
)
ttlsa_com
>
show
collections
system
.
indexes
>
db
.
dropDatabase
(
)
{
"dropped"
:
"ttlsa_com"
,
"ok"
:
1
}
>
db
ttlsa_com
>
show
dbs
local
0.078125GB
|
在执行删除整个数据库前,要谨慎,执行db命令查看当前的使用的数据库,可确保误删除,造成数据的丢失,是个不错的习惯啦。