没人教,没人带,没文档,自己找了资料找了一下午终于写好了,可以当个参考吧,注释不多,浅显易懂。
#include<cstdlib>
#include<iostream>
#include"mongo/client/dbclient.h"
using namespace mongo;
DBClientConnection conn;
void insert(string key_name,string key_value)//增 参数分别为键名和键值
{
BSONObj p = BSONObjBuilder().append(key_name,key_value ).obj();
conn.insert("student.student", p);//student.student 为数据库名为student 表名为student
cout<<"successed insert "+key_name+":"+key_value<<endl;
}
void delete_record(string key_name,string key_value)//删 参数分别为键名和键值
{
bool deleteone = true;
BSONObj delttequery = BSONObjBuilder().append(key_name,key_value).obj();
conn.remove("student.student",delttequery,deleteone);
cout<<"successed delete "+key_name+":"+key_value<<endl;
}
void update_record(string key_name_A,string key_value_A,string key_name_B,string key_value_B)//update A to B//改 参数分别为要修改的键名和键值 修改之后的 键名和键值
{
bool upsert = false;
bool updatemutil = false;
BSONObj updatequery = BSONObjBuilder().append(key_name_A,key_value_A).obj();
BSONObj updatedata = BSONObjBuilder().append(key_name_B,key_value_B).obj();
conn.update("student.student",updatequery,updatedata,upsert,updatemutil);
cout<<"successed update "+key_name_A+":"+key_value_A+" to "+key_name_B+":"+key_value_B <<endl;
}
void query_record()//查询所有
{
auto_ptr<DBClientCursor> cursor = conn.query("student.student");
while(cursor.get() && cursor->more())
{
BSONObj obj = cursor->next();
if(!obj.isEmpty())
{
cout<<obj.toString()<<endl;
}
}
}
auto_ptr<DBClientCursor> query_all()
{
auto_ptr<DBClientCursor> dc = conn.query("student.student");
return dc;
}
void run()//测试连接
{
try{
conn.connect("localhost");
std::cout <<"connected ok"<< std::endl;
}catch(const mongo::DBException&e ){
std::cout <<"caught "<< e.what()<< std::endl;}
return ;
}
int main()//main函数
{
run();
//insert("name","zhaoshikui");
//delete_record("name","zhangwu");
//update_record("name","zhaoshikui","name","zhaojinpeng");
query_record();
return 0;
}