mongodb高级应用
一、 高级查询
- 查询操作符
- 条件操作符:db.collection.find({“field”:{$gt/$lt/$gte/$lte/$eq/$ne:value}});
- 匹配所有:db.collection.find({age:{$all:[6,8]}});//字段的数组中符合全部条件才行。
- 判断字段存在:db.colletion.find({field:{$exists:true}})//还可用于remove等。
- Null值的处理:db.collection.find({field:{“$in”:null,”$exists:true}});
- 取模运算:db.colletion.find({field:{$mod:[10,1]}});
- $ne不等于
- $in包括
- $nin不包括 //$ini和$ne的区别就是ini用于数组检测
- $size匹配数组元素个数
- Count查询记录条数:db.field.find().count();
- Skip显示返回记录的起点:db.students.find().skip(4),跳过前面4条
- Sort排序
- Distinct去重:db.collection.distinct(“field”);查看某字段值的种类。
- Group分组统计
- 查询语法
- 数组内容的查询:通过查询数组的一个属性,可以查出整条文档。
- 内嵌文档的查询:查询文档中field字段中name属性可以find({“field.name”:*});
- 正则表达式匹配查询
- $where查询:命令中不包括where关键字
- 联合查询
- 步骤
1 u=db.user.findOne({author:“ken”});
2 for(var p=db.posting.find({author:u.author});p.hasNext();) {printjson(p.next().title)};
3 上面的解析:先通过名称找出文档,再通过获得的文档中的名称打印title
- 游标和存储过程
- 游标:结果缓存再读取
- 存储过程
1 声明:db.system.js.save({_id: addNumbers value:funtion(x,y){return x+y}});
2 通过id调用:db.eval(‘addNumbers(3,4)’);
3 声明后直接调用:db.eval(function(){return 3+3});
二、 高级更新
- 数据更新命令
- Update:db.collection.update(criteria,objNew,upsert,multi)
1 Criteria:此处填写查询条件
2 objNew:用$inc的操作
3 upsert:逻辑操作决定在更新操作的时候,没有符合条件的时候是否插入。
4 multi:按照条件查找的多多条的时候,决定多条记录是否同时更新。
- save:如果集合里面有同id的文档,将被覆盖,如果没有,就添加。
- 数据更新操作符
- $inc:{$inc:{field:value}} //对某个字段的数值作品加法
- $set:{$set:{field:value}} //直接修改某个字段的值
- $unset:{$unset:{field:1}} //删除字段
- $push:{$push:{field:value}} //针对数组类型添加值
- $pushAll:{$pushAll:{field:[value1,value2]}} //针对数组类型添加多个值
- $addToSet:{$addToSet:{field:[value1,value2]}} //针对数组类型添加数组
- $pop:{$pop:{field:-1}} //删除数组内的一个值
- $pull:{pull:{field:_value}} //从数组中删除一个等于value的值
- $pullAll:{pullAll:{field:[value1,value2]}} //可以一次删除数组内多个值
- $rename:{$rename:{old_name:new_name}} //字段重命名
- 高级特性
- Capped Collection
1 先预定空间的大小,用完之后就老化溢出。
2 发挥最大的性能,在记录日志不应该创建索引。
3 发挥最大的性能,读比写多的时候不要在上面创建索引。
4 Ps:log speed 是快,data speed 慢。
- GridFS规范
1 海量存储
- 因为BSON的大小限制,大文件会分开。
- Files(包括元数据对象),chunks(二进制块)
2 命令行工具
- Mongofiles put 上传
- Mongofiles get 下载
- MapReduce编程模型
1 Map进行分组
2 Reduce聚合计算
3 Result获取结果
4 Finalize格式化输出
5 Options定制输出
mongodb高级应用的更多相关文章
- MongoDB高级查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
- DataBase MongoDB高级知识-易使用
MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...
- DataBase MongoDB高级知识-易扩展
MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...
- DataBase MongoDB高级知识
MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...
- mongoDB高级查询$type4array使用解析
今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...
- 【mongoDB高级篇③】综合实战(1): 分析国家地震数据
数据准备 下载国家地震数据 http://data.earthquake.cn/data/ 通过navicat导入到数据库,方便和mysql语句做对比 shard分片集群配置 # step 1 mkd ...
- MongoDB高级知识-易使用
MongoDB高级知识-易使用 mongodb是一个面向文档的数据库,而不是关系型数据库.不采用关系模型主要是为了获取更好的扩展性.当然还有其他的一些好处. 与关系型数据库相比,面向文档的数据库不再有 ...
- MongoDB高级知识-易扩展
MongoDB高级知识-易扩展 应用程序数据集的大小正在以不可思议的速度增长.随着可用宽带的增长和存储器价格的下跌,即使是一个小规模的应用程序,需要存储的数据也可能大的惊人,甚至超出了很多数据库的处理 ...
- MongoDB高级知识
MongoDB高级知识 一.mongodb适合场景: 1.读写分离:MongoDB服务采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据.Primary和Secondary ...
- mongoDB 高级查询语法
http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Ad ...
随机推荐
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- SSIS 属性:ExecValueVariable
有些Task组件执行完成之后,会产生输出结果,称作Execution Value,例如,Execute SQL Task在执行完成之后,会返回受影响的数据行数.Task组件的Execution Val ...
- 06.移动先行之谁主沉浮----我的代码我来写(Xaml的优势)
如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 前面几节课,我们都是在前台创建对象,进行一些设置,那么我们为什么不用传统的方法来编程呢? 我们今天来试试你就明了了~~ 打开M ...
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是c ...
- 学习笔记之(console)
今天小颖在逛博客园时,发现一位帅锅写的有意思的Console小颖看了后,就自己敲了一遍嘻嘻,为了方便以后查看,小颖把它记录下来嘻嘻,有兴趣的小伙伴也可以自己试试哦. 格式占位符 作用 %s 字符串 % ...
- 添加 Pool Member - 每天5分钟玩转 OpenStack(123)
我们已经有了 Load Balance Pool "web servers"和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image. 先准 ...
- meta标签
参考:http://www.jb51.net/web/158860.html META标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME). 一.HTTP标题信息(HTT ...
- C#开发微信门户及应用(30)--消息的群发处理和预览功能
在很多场合下,我们可能需要利用微信公众号的优势,定期给指定用户群发送一些推广消息或者新闻内容,以便给关注客户一种经常更新公众号内容的感觉,同时也方便我们经常和用户进行互动.微信公众号的高级群发接口就是 ...
- bzoj1878--离线+树状数组
这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...
- C语言计算2个数的最小公倍数
#include<stdio.h>int main(){ int a,b,i=1,temp,lcm; scanf("%d %d",&a,&b); ...