C++ 连接Mongo数据库实现增删改差

没人教,没人带,没文档,自己找了资料找了一下午终于写好了,可以当个参考吧,注释不多,浅显易懂。

#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;
}

猜你喜欢

转载自blog.csdn.net/z8110/article/details/81190478