MongoDB高级查询详细
前言
前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦。如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查
前奏:启动mongdb数据库服务,并进入shell界面
> cmd
> cd C:\Program Files\MongoDB\bin --进入mongdb安装文件的bin目录下。
> net start mongoDB; --开启mongoDB数据库服务
> mongo --进入shell界面
常用命令
> show dbs -- 查看数据库列表
> use admin --创建admin数据库,如果存在admin数据库则使用admin数据库
> db ---显示当前使用的数据库名称
> db.getName() ---显示当前使用的数据库名称
> db.dropDatabase() --删当前使用的数据库
> db.repairDatabase() --修复当前数据库
> db.version() --当前数据库版本
> db.getMongo() --查看当前数据库的链接机器地址
> db.stats() 显示当前数据库状态,包含数据库名称,集合个数,当前数据库大小 ...
> db.getCollectionNames() --查看数据库中有那些个集合(表)
> show collections --查看数据库中有那些个集合(表)
> db.person.drop() --删除当前集合(表)person
MongoDB接入Javascrip风格语法,for,while,next,hasNext,forEach,toArray,findOne,limit
Note:
1、p={name:"张龙豪",age:18} 这个不是规范的json格式,使用这种类似javascript语法,对象会自动补全为规范的json格式{"name":"张龙豪","age":18}.
2、我在这里插入2条数据,一条是insert语法,一条是save语法,这里的insert与save是一样的功能。
Note:这里我主要用啦一个for语法,循环插入啦4条数据,是不是有点小激动。哈哈,mongodb就是这么任性。
Note:这里是吧查询出来的
1、while:作为程序员应该都不陌生他是个循环。
2、hasNext: cursor集合遍历,是否还有数据。
3、printjson:输出集合中的文档
4、next:当前文档,并向下遍历。
Note:forEach循环输入,必须定义一个函数供每个游标元素调用。
Note:游标也可以当作数组来用。
Note:游标转换为真实的数组类型,使用。
Note:findOne,返回结果集中的第一条数据。limit(3),返回结果集中的前三条数据。
MongoDB中的高级查询
面向文档的NoSql数据库重要解决的问题不是高性能的并发读写问题,而是保证海量数据存储的同时,具有比一般数据库更加良好的查询性能。
Note:条件操作符号: > 、 < 、 >= 、<=
1、 $gt //大于 > ,$lt //小于 < ,$gte //大于等于 >= ,$lte //小于等于
2、{"filed":{$op,value}} //filed字段 ,$op条件操作符号,value值。
3、{"age":{$gt:1}} : person集合中年龄大于1的所有数据文档
Note:$all匹配所有,类似t-sql中的in,但是t-sql中的in是满足括号里面的任何一个都能出数据,而mongodb中的$all则必须满足[]中的所有值。
1、{age:{$all:[7,9]}}:age数组中只要有7和9就满足条件。如果只有7,没有9则不符合条件。
Note:$exists判断字段是否存在,(true/false)
1、{city:{$exists:true}}: 集合中存在city这个字段的数据
Note:$mod取模运算。
1、{age:{$mod:[7,6]}}:集合中模7余6的数据
Note:$ne不等于
Note:$in包含,$nin不包含。跟t-sql中的in,not in一样。
1、{age:{$in:[10,11]}}:如果age是数组的话,只要数组包含in中条件的任何一条数据,都能被检索出来。不是数组,则只要满足in中的任何一个条件数据,也可以被检索出来。
Note:数组元素个数。
1、{age:{$size:4}}:age数组元素个数为4的数据结果集。
Note:$not正则匹配,不包含以张开头的数据。
Note:skip,limit,sort,count
1、skip(2):从数据集的第二条开始查询
2、limit(2) : 依次查出2条数据。
3、sort({age:1}) : 1.正序查询,-1倒叙查询。
4、count():结果集总数。
MongoDB高级查询详细的更多相关文章
- mongoDB 高级查询语法
http://www.cnblogs.com/ITAres/articles/2084794.html本文参考自官方的手册:http://www.mongodb.org/display/DOCS/Ad ...
- mongoDB高级查询$type4array使用解析
今天在使用mongoDB高级查询$type:符号 -- 4代指Array类型发现一个问题. $type符号: $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. 下面是mong ...
- MongoDB高级查询用法大全
转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...
- mongodb高级查询
前几篇,老玩家绕道即可,新手晚上闲着也是蛋疼,不如把命令敲一边,这样你就会对MongoDB有一定的掌握啦.如果没有安装MongoDB去看我的上一篇博客 MongoDB下载安装与简单增删改查 前奏:启 ...
- Mongodb高级查询【二】
上一篇文章,写了mongodb常规操作,继续写入,本章主要讲高级查询,文本,聚集,大数据查询. Mongodb的查询语法是很多的,是NOSQL队伍中比较丰富的一个.当然有很多查询跟关系型查询无法相比. ...
- MongoDB 高级查询_aggregate聚合管道
MongoDB 聚合管道(AggregationPipeline) 使用聚合管道可以对集合中的文档进行变换和组合.实际项目应用主要是表关联查询.数据的统计. MongoDB 中使用 db.COLLEC ...
- mongoDB 高级查询之取模查询$mod
http://hancang2000.i.sohu.com/blog/view/235140698.htm $mod取模运算 查询age取模10等于0的数据 db.student.find( { ...
- MongoDB高级查询用法大全 (转)
http://www.cnblogs.com/t2xingzhe/p/3555268.html
- mongoDB 高级查询之复杂查询$where
http://blog.csdn.net/drifterj/article/details/7833883
随机推荐
- 【.net 深呼吸】细说CodeDom(5):类型成员
前文中,老周已经厚着脸皮介绍了类型的声明,类型里面包含的自然就是类型成员了,故,顺着这个思路,今天咱们就了解一下如何向类型添加成员. 咱们都知道,常见的类型成员,比如字段.属性.方法.事件.表示代码成 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- spark处理大规模语料库统计词汇
最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...
- 使用ubuntu作为web开发环境的一些感受
从ms-dos,win95,win98,winMe,winXp,vista,win7,win10我都有使用的经历,我使用时间最长的应属winxp,其次是win7,说实话,我觉得这两个系统是微软做的最好 ...
- (一)开篇—杂谈WebGIS
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 我相信大家对百度地图,谷歌地图等相关应用已经是非常熟悉了.通过 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- [LintCode]——目录
Yet Another Source Code for LintCode Current Status : 232AC / 289ALL in Language C++, Up to date (20 ...
- java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
一.Condition 类 在前面我们学习与synchronized锁配合的线程等待(Object.wait)与线程通知(Object.notify),那么对于JDK1.5 的 java.util.c ...
- 【干货分享】流程DEMO-离职流程
流程名: 离职申请 流程相关文件: 流程包.xml WebService业务服务.xml WebService.asmx WebService.cs 流程说明: 流程中集成了webservic ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...