mongodb 查询数据
MongoDB概念解析:
等同于SQL的数据库表:collection
document:等同于SQL的数据记录行
field:等同于SQL的数据字段
表连接,MongoDB不支持
主键,MongoDB自动将_id字段设置为主键
1.查询数据(文档)
db.mycol.find()
db.mycol.find().pretty() //格式化显示
db.mycol.findOne() //返回一条记录
2.查看有几条记录
db.mycol.count()
3.查询需要的字段:
db.mycol.find({},{"title":}) //只显示id和title
db.mycol.find({},{"title":,"by":}) //显示id,title和by
db.mycol.find({},{"title":,_id:}) //只显示title
4.条件查询指定返回的键
db.[documentName].find ({条件},{键指定})
数据准备persons.json
5.db.person.find({为空表示查询全部},{_id:0,name:1,country:1})//_id:0表示不显示_id
5.1查询出所有数据的指定键(name ,age ,country)
db.persons.find({},{name:,age:,country:,_id:})
5.2查询出年龄在25到27岁之间的学生
db.persons.find({age: {$gte:,$lte:},{_id:,age:})
5.3查询出所有不是韩国籍的学生的数学成绩
db.persons.find({country:{$ne:” Korea”}},{_id:,m:})
6.包含或不包含
$in或$nin
6.1查询国籍是中国或美国的学生信息
db.persons.find({country:{$in:[“USA”,“China”]}})
6.2查询国籍不是中国或美国的学生信息
db.persons.find({country:{$nin:[“USA”,“China”]}})
7.OR查询
$or
7.1查询语文成绩大于85或者英语大于90的学生信息
db.persons.find({$or:[{c:{$gte:}},{e:{$gte:}}]},{_id:,c:,e:})
8.Null
把中国国籍的学生上增加新的键sex
db.person.update({country:”China”},{$set:{sex:”m”}})
8.1查询出sex 等于 null的学生
db.persons.find({sex:{$in:[null]}},{country:})
9.正则查询
9.1查询出名字中存在”li”的学生的信息
db.persons.find({name:/li/i},{_id:,name:})
10.$not的使用
$not可以用到任何地方进行取反操作
10.2查询出名字中不存在”li”的学生的信息
db.persons.find({name:{$not:/li/i}},{_id:,name:})
$not和$nin的区别是$not可以用在任何地方儿$nin是用到集合上的
11.数组查询$all和index应用
11.1查询喜欢看MONGOD和JS的学生
db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:,_id:})
11.2查询第二本书是JAVA的学习信息
db.persons.find({“books.”:”JAVA”})
12。查询指定长度数组$size它不能与比较查询符一起使用(这是弊端)
12.1查询出喜欢的书籍数量是4本的学生
db.persons.find({books:{$size:}},{_id:,books:})
12.2查询出喜欢的书籍数量大于3本的学生
1.增加字段size
db.persons.update({},{$set:{size:}},false, true)
2.改变书籍的更新方式,每次增加书籍的时候size增加1
db.persons.update({查询器},{$push:{books:”ORACLE”},$inc:{size:}})
3.利用$gt查询
db.persons.find({size:{$gt:}})
4.利用shell查询出Jim喜欢看的书的数量
var persons = db.persons.find({name:"jim"})
while(persons.hasNext()){
obj = persons.next();
print(obj.books.length)
}
1.mongodb 是NOSQL数据库但是他在文档查询上还是很强大的
2.查询符基本是用到花括号里面的更新符基本是在外面
3.shell是个彻彻底底的JS引擎,但是一些特殊的操作要靠他的
各个驱动包来完成(JAVA,NODE.JS)
13.$slice操作符返回文档中指定数组的内部值
13.1查询出Jim书架中第2~4本书
db.persons.find({name:"jim"},{books:{"$slice":[,]}})
13.2查询出最后一本书
db.persons.find({name:"jim"},{books:{"$slice":-},_id:,name:})
14.文档查询
为jim添加学习简历文档 jim.json
查询出在K上过学的学生
1. 这个我们用绝对匹配可以完成,但是有些问题(找找问题?顺序?总要带着score?)
db.persons.find({school:{school:"K",score:"A"}},{_id:,school:})
2.为了解决顺序的问题我可以用对象”.”的方式定位
db.persons.find({"school.score":"A","school.school":"K"},{_id:,school:})
3.这样也问题看例子:
db.persons.find({"school.score":"A","school.school":”J”},{_id:,school:})
同样能查出刚才那条数据,原因是score和school会去其他对象对比
4.正确做法单条条件组查询$elemMatch
db.persons.find({school:{$elemMatch:{school:"K",score:"A"}}})
mongodb 查询数据的更多相关文章
- java操作mongodb——查询数据
通过find方法查询集合中的文档信息 -------------------------------------------------------- find() 查询所有文档信息,返回FindIt ...
- 8. java操作mongodb——查询数据
转自:https://www.cnblogs.com/adjk/p/6430074.html 通过find方法查询集合中的文档信息 ---------------------------------- ...
- PHP 从 MongoDb 中查询数据怎么样实现
一.软件环境(版本非必须) php v5.6 扩展:MongoDB nginx v1.11 mongodb v3.2 note: 必须安装MongoDB扩展 二.连接 $client = new Mo ...
- MongoDB 查询文档
语法 MongoDB 查询数据的语法格式如下: >db.COLLECTION_NAME.find() find() 方法以非结构化的方式来显示所有文档. 如果你需要以易读的方式来读取数据,可以使 ...
- mongodb基础系列——数据库查询数据返回前台JSP(二)
上篇博客论述了,数据库查询数据返回前台JSP.博客中主要使用Ajax调用来显示JSON串,来获取其中某一个字段,赋给界面中的某一个控件. 那这篇博客中,我们讲解,把后台List传递JSP展示. Lis ...
- MongoDB数据库中查询数据(下)
MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...
- 在MongoDB数据库中查询数据(上)
在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...
- koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- python操作mongodb根据_id查询数据的实现方法
python操作mongodb根据_id查询数据的实现方法 python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...
随机推荐
- vue页面性能优化方案
个人在项目中用到的页面性能优化的方式总结. 一.均衡页面加载文件的大小和数量 1.项目中小图片图片转base64,通过工具如webpack进行图片压缩,文件进行压缩混淆等 2.vue-router 懒 ...
- Python 3 socket 编程
Python 3 socket编程 一 客户端/服务器架构 互联网中处处是C/S架构 1.C/S结构,即Client/Server(客户端/服务器)结构 2.在互联网中处处可见c/s架构 比如说浏览器 ...
- CSS3响应式侧边菜单
在线演示 本地下载
- 20145229吴姗珊 《Java程序设计》课程总结
20145229吴姗珊 <Java程序设计>课程总结 (按顺序)每周读书笔记链接汇总 第一周:http://www.cnblogs.com/20145229ss/p/5248728.htm ...
- nginx Unit 服务器
转自: https://github.com/nginx/unit/pull/18/ 感谢: https://www.v2ex.com/t/389528 English 简体中文 繁體中文 NGINX ...
- RabbitMQ高级应用
高级应用一: 手动模式和自动应答模式 1. 了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitMQ就可以删除它了 ...
- 0X7FFFFFFF,0X80000000
给int类型赋值的话,0X7FFFFFFF代表最大值,0X80000000代表最小值 INT_MAX 代表最大值, INT_MIN 代表最小值 #include<iostream> #in ...
- 一个用 vue 写的树层级组件 vue-ztree
最近看了大神的关于vue-ztree的博客,感觉很赞,于是摘抄下来,方便自己学习,机智girl,哈哈哈O(∩_∩)O 最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 z ...
- appium-环境搭建(二)
接着上一篇 1.基本的python环境 2.安装node.js,32位还是64位根据自己的系统来选择 3.安装.net framwork4.5 4.安装appium 安装完成后,运行appium.ex ...
- bzoj-1588 1588: [HNOI2002]营业额统计(BST)
题目链接: 1588: [HNOI2002]营业额统计 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 13596 Solved: 5049[Submi ...