mongodb的一些基本操作以及c++驱动的简单方法

一、一些数据操作
1、集合中的字段不需要提前设置,可以随时增减。
2、增加字段update({文档筛选条件},{$set:{新字段,如果字段名已存在则替换}})
3、删除字段upate({文档筛选条件},{$unset:{字段名:""}}
4、修改字段,同2
5、修改子字段,字段名可以用点操作符描述但是必须用引号括起来如
{id:100, item:{cnt:100}}
update({id:100},{$set:{"item.cnt":1}})
二、c++驱动操作方法
0、数据库连接对象 DBClientConnection
连接数据库 DBClientConnection::connect("host:port")
插入DBClientConnection::insert
修改DBClientConnection::update
1、符合对象生成如{id:100, item:{cnt:100}}
BSON("id" << 100 << "item" << BSON("cnt"<<100)) )
2、BSONObj转json格式字符串方法 BSONObj::toString().c_str()
3、二进制数据的写入
BSONObjBuilder::appendBinData( 字段名, 数据长度,数据类型(一般用BinDataGeneral), 数据指针)
目前好像不能用BSON宏来创建
4、数据库查询方法
auto_ptr<DBClientCursor> cursor = c.query( 集合名, [查询条件,类型同为BSONObj] )
while( cursor->more() )
{
获取文档内容:BSONObj obj = cursor->next();
获取内容:obj.getIntField("");
类似的方法还有getStringField,getFloatField,getBoolField等
获取符合对象:obj.getObjectField()返回类型为BSONObj
读取二进制数据:
先判定字段是否存在obj.hasField(""),
获取BSONElement ele = obj.getField(""),
int len;
const char* buff = ele.binData( len );
len中会被写入buff的长度
}
三、一些有用的参考网站
http://api.mongodb.org/cplusplus/current/index.html
http://www.mongoing.com/
http://www.yiibai.com/mongodb/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值