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 查询数据的更多相关文章

  1. java操作mongodb——查询数据

    通过find方法查询集合中的文档信息 -------------------------------------------------------- find() 查询所有文档信息,返回FindIt ...

  2. 8. java操作mongodb——查询数据

    转自:https://www.cnblogs.com/adjk/p/6430074.html 通过find方法查询集合中的文档信息 ---------------------------------- ...

  3. PHP 从 MongoDb 中查询数据怎么样实现

    一.软件环境(版本非必须) php v5.6 扩展:MongoDB nginx v1.11 mongodb v3.2 note: 必须安装MongoDB扩展 二.连接 $client = new Mo ...

  4. MongoDB 查询文档

    语法 MongoDB 查询数据的语法格式如下: >db.COLLECTION_NAME.find() find() 方法以非结构化的方式来显示所有文档. 如果你需要以易读的方式来读取数据,可以使 ...

  5. mongodb基础系列——数据库查询数据返回前台JSP(二)

    上篇博客论述了,数据库查询数据返回前台JSP.博客中主要使用Ajax调用来显示JSON串,来获取其中某一个字段,赋给界面中的某一个控件. 那这篇博客中,我们讲解,把后台List传递JSP展示. Lis ...

  6. MongoDB数据库中查询数据(下)

    MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...

  7. 在MongoDB数据库中查询数据(上)

    在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...

  8. koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据

    1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...

  9. python操作mongodb根据_id查询数据的实现方法

    python操作mongodb根据_id查询数据的实现方法   python操作mongodb根据_id查询数据的实现方法,实例分析了Python根据pymongo不同版本操作ObjectId的技巧, ...

随机推荐

  1. ButterKnife 原理解析

    一.使用方法 1.添加依赖. implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewhart ...

  2. PHP数组各种操作与函数汇总

    对于Web编程来说,最重要的就是存取和读写数据了.存储方式可能有很多种,可以是字符串.数组.文件的形式等.数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是我学习的小结,借 ...

  3. CenterFactory

    <?php /* 实例3 */ /* 抽象工厂 */ //青铜会员的打折商品 class BronzeRebateCommodity { //描述 public $desc = '青铜会员的打折 ...

  4. 6 Python 数据类型—字符串

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = ...

  5. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  6. bzoj3224Treap

    Splay版本的会补... 在学了2个小时Splay之后深感Treap的优越 特地又花了20分钟打了个Treap 至于这些平衡树的优缺点 可以用平衡方式来直观的感受到 现在平衡树们面对着这样的一个问题 ...

  7. 2017-2018-1 20179215《Linux内核原理与分析》第六周作业

    一.实验部分:使用gdb跟踪分析一个系统调用内核函数(上周选择的那一个系统调用). [第一部分] 根据要求完成第一部分,步骤如下: ①更新menu代码到最新版 ②在原有代码中加入C函数.汇编函数 in ...

  8. ACM学习历程—UESTC 1215 Secrete Master Plan(矩阵旋转)(2015CCPC A)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1215 题目大意就是问一个2*2的矩阵能否通过旋转得到另一个. 代码: #include <iostre ...

  9. bzoj 2794: Cloakroom dp

    题目: 有\(n\)件物品,每件物品有三个属性\(a_i,b_i,c_i,(a_i < b_i)\) 再给出\(q\)个询问,每个询问由非负整数\(m,k,s\)组成,问是否能够选出某些物品使得 ...

  10. HBase的bulkLoad

    HBase的BulkLoad有两种方式: thinrow的机制是flatmap把cell的信息进行flatmap:适合少于1万列的数据集:thinrow的涵义就是少行多列: bulkload的机制则是 ...