MongoDB C++应用 简单例子
来源:互联网 发布:网易广州 知乎 编辑:程序博客网 时间:2024/06/05 22:59
假定你已经有了MongoDB server,并且工作在Ubuntu上,安装了GCC,下面的C++程序可以帮助你快速进入能够使用MongoDB的状态。
#include <cstdlib>#include <mongo/client/connpool.h>using namespace std;using namespace mongo;void SaveStatus(mongo::DBClientBase& session, string const& display_id, string const& status) { BSONObjBuilder condition; condition.append("display_id", mongo::OID(display_id)); BSONObjBuilder status_field; status_field.append("status", status); BSONObjBuilder data; data.append("$set", status_field.obj()); session.update("mydb.mycoll", mongo::Query(condition.obj()), data.obj());}/* * */int main(int argc, char** argv) { mongo::ScopedDbConnection con("localhost", 5000);//timeout is 5000 mongo::DBClientBase& session = con.conn(); BSONArrayBuilder display_ids; display_ids.append(mongo::OID("5061f915e4b045bab5e0c957")); BSONObjBuilder in_condition; in_condition.append("$in", display_ids.arr()); BSONObjBuilder message_condition; message_condition.append("display_id", in_condition.obj()); message_condition.append("status", "sending"); BSONObjBuilder sortBuilder; sortBuilder.append("_id", 1); mongo::Query query(message_condition.obj()); mongo::Query query2(query); mongo::Query query_with_sort(query.sort(sortBuilder.obj())); BSONObjBuilder update_field; update_field.append("status", "waiting"); BSONObjBuilder set_field; set_field.append("$set", update_field.obj()); session.update("mydb.mycoll", query2, set_field.obj(), false, true); con.done(); return 0;}
提示:
1.SaveStatus函数内部演示了简单的设置某个字段值的用法。2.main函数中演示了更加复杂的用法,用$in作为update语句的查询条件。
3.最后的con.done()函数调用是必须的,因为连接必须回到池中。
4.session.update的查询条件不能带sort,否则更新不会成功,因此可以看到我的代码中专门复制了一个query2对象用于update, 而query_with_sort 可以用于一般的查询(find)。
5.BSONObject的obj方法只能被调用一次,第二次程序就会crash。
6.mongo::OID用来将字符串转换成OID对象,也就是常见的_id的值
7.有时候当碰到编译错误的时候,可以试一下这个头文件:
#include "mongo/client/dbclient.h"
- MongoDB C++应用 简单例子
- Mongodb简单例子
- MongoDB简单应用
- Ajax简单应用例子
- 简单应用OpenCV例子
- c的简单例子
- Pro * C 简单例子
- objective-c简单例子
- SpringBoot结合MongoDB简单应用
- java应用MongoDB简单操作
- nodejs+express+mongodb简单的例子
- nodejs+express+mongodb简单的例子
- nodejs+express+mongodb简单的例子
- Zookeepe的简单应用例子
- springmvc的简单应用例子
- delphi 线程应用简单例子
- Pro*c的简单例子
- 上传 下载 简单例子(c#)
- 链式存储线性表(无头节点)
- 面向对象之封装与多态
- 高斯模糊处理(图像复原)源代码
- 人脸检测与识别的站点
- 水平镜像处理源代码
- MongoDB C++应用 简单例子
- dct变换源代码
- xtrabackup 1.6.3安装出现cc1: error: unrecognized command line option "-fdiagnostics-show-option"
- 第二章(编译和链接)
- 我学到的一些关于编程的事儿(翻译)
- 硬盘数据恢复
- 对spring框架的理解
- 带指针的通信结构体32位与64位兼容
- php隐藏域