第二天
复习 :
数据库创建删除:  use  数据库名称
db.dropDatabase()
集合的创建和删除  db.createCollection('name')
db.collectionName.insert()
db.collectionName.drop()  删除
db.collectionName.renameCollection() 重命名
数据库的备份和恢复
mongodump (备份)   mongorestore(恢复)
数据库的监测
mongostat   mongotop
数据库配置
mongod  --dbpath  path  --port  8888
数据的插入 : insert()    save()
=====================================
db.collectionName  集合对象
获取集合对象 : db.getCollection('collection_name')
e.g.
db.getCollection("class0").insert({name:'悟空',age:1700})
查找操作
select  ... from  tableName  where .....
db.collectionName.find()  ---> select * from tableName
find(query,field)
功能 : 查找所有符合条件的文档
参数 : query : 筛选条件  相当于where字句
field : 展示的域  相当于select的展示部分
返回 : 返回所有查找到的内容
field 参数 : 选择要展示的域  传一组键值对
键表示域名
值表示是否显示该域 0 表示不显示   1 表示显示
* 如果某个域给定0 则表示不显示该域,其他的域均显示
如果某个域给定1 则表示显示该域 ,其他的域都不显示
* _id 永远默认为显示,除非设置为0
* 除_id外其他域 必须拥有相同的设置,全为0或者全为1
* 如果不写该参数则表示显示所有域内容
e.g.  db.class0.find({},{_id:0,name:1,age:1})
query : 以键值对的形式给出查找条件
查找年龄 17
e.g.   db.class0.find({age:17},{_id:0})
* 如果不写第一个参数则表示查找所有内容
findOne()
功能参数和find() 完全相同,只是只返回第一条查找到的文档
e.g.   db.class0.findOne({age:17},{_id:0})
query的更多用法
操作符: 使用$符号注明一个特殊字符串,表示一定的含义 
e.g.    $lt  表示 小于
比较操作符
$eq  等于
e.g.  db.class0.find({age:{$eq:17}},{_id:0})
筛选年龄等于17的
=====》 db.class0.find({age:17},{_id:0})
$lt  小于  <
e.g.   db.class0.find({age:{$lt:17}},{_id:0})
* mongo中字符串也可以比较大小
$lte  小于等于   <=
e.g.   db.class0.find({age:{$lte:17}},{_id:0})
$gt   大于  >
e.g.  db.class0.find({age:{$gt:17}},{_id:0})
$gte   大于等于 >=
e.g.  db.class0.find({age:{$gte:17}},{_id:0})
$ne   不等于   !=
e.g.   db.class0.find({age:{$ne:17}},{_id:0})
* 如果一个文档没有这个age域则显示为不等于
$in   包含
e.g.  db.class0.find({age:{$in:[16,17,18]}},{_id:0})
$nin  不包含
e.g.  db.class0.find({age:{$nin:[16,17,18]}},{_id:0})
逻辑操作符
$and   逻辑与
年龄小于19 并且 性别为男
db.class0.find({age:{$lt:19},sex:'m'},{_id:0})
年龄小于19 并且 大于15
db.class0.find({age:{$lt:19,$gt:15}},{_id:0})
e.g.  db.class0.find({$and:[{age:17},{name:'Lei'}]})
$or  逻辑或
e.g.
db.class0.find({$or:[{age:{$lt:22}},{name:'悟空'}]},{_id:0})
db.class0.find({$or:[{age:{$lt:18}},{age:{$gt:30}}]},{_id:0})
$not   逻辑非
e.g.  db.class0.find({age:{$not:{$eq:17}}},{_id:0})
$nor  既不也不   (表示列表集合中的条件都不具备)
db.class0.find({$nor:[{age:{$gt:18}},{sex:'m'}]},{_id:0})
条件混合
(年龄小于20  或者 姓名为阿红) 并且  性别为女的人
db.class0.find({$and:[{$or:[{age:{$lt:20}},{name:'阿红'}]},{sex:'w'}]},{_id:0})
年龄小于等于17  或者  (姓名大于Tom 并且 年龄大于100)
db.class0.find({$or:[{age:{$lte:17}},{name:{$gt:'Tom'},age:{$gt:100}}]},{_id:0})
数组查找 :
查看数组中包含某一项的
e.g.   db.class1.find({hobby:'吃'},{_id:0})
$all
查找一个数组中同时包含多项的文档
e.g. db.class1.find({hobby:{$all:['拍电影','代言']}},{_id:0})
查找hobby数组中既有拍电影,又有代言的文档
$size
查找数组元素个数为指定个数的文档
e.g.  db.class1.find({hobby:{$size:3}},{_id:0})
查找hobby数组中包含三项的文档
数组切片显示
$slice 
对数组切片显示
e.g.
db.class1.find({hobby:{$size:3}},{_id:0,hobby:{$slice:2}})
显示数组的前两项
e.g.
db.class1.find({hobby:{$size:3}},{_id:0,hobby:{$slice:[1,2]}})
跳过第一项,显示后面两项
其他查找方法:
$exists
判断一个域是否存在
e.g.  查找存在sex域的文档
db.class0.find({sex:{$exists:true}},{_id:0})
e.g.  查找不存在sex域的文档
db.class0.find({sex:{$exists:false}},{_id:0})
$mod
做除数余数查找
e.g.
查找年龄 被2除余1的文档
db.class0.find({age:{$mod:[2,1]}},{_id:0})
$type
查找指定数据类型的文档
e.g. 查找hobby中包含数据类型为 2 的数据的文档
db.class1.find({hobby:{$type:2}},{_id:0})
数据类型对照:
https://docs.mongodb.com/manual/reference/operator/query/type/
进一步的信息筛选
distinct()
功能 : 查看一个集合中某个域值的覆盖范围
e.g.  查看集合中age域的值都有哪些
db.class0.distinct('age')
pretty()
功能 : 将查询结果格式化显示
e.g.    db.class0.find().pretty()
limit(n)
功能: 查询结果显示前 n条
e.g. 查询结果显示前3个
db.class0.find({},{_id:0}).limit(3)
skip(n)
功能 : 显示时跳过前n条
e.g. 显示时跳过前三条
db.class0.find({},{_id:0}).skip(3)
count()
功能 :对查找结果计数统计
e.g.  统计sex 为 m的文档数量
db.class0.find({sex:'m'},{_id:0}).count()
sort({键:1/-1})
功能 : 对查找结果排序
1 表示按照升序排列, -1 表示按照降序排列
对查找结果按照年龄升序排列
db.class0.find({age:{$exists:true}},{_id:0}).sort({age:1})
复合排序 : 当第一排序项相同的时候,按照第二排序项排序
db.class0.find({age:{$exists:true}},{_id:0}).sort({age:1,name:-1})
函数的连续使用
获取集合中年龄最小的三个文档
db.class0.find({},{_id:0}).sort({age:1}).limit(3)
删除文档
delete from tableName where ....
db.collectionName.remove(query,justOne)
功能 : 删除指定的文档
参数 :  query : 筛选要删除的文档, 类似where子句
用法同 查找操作
justOne :布尔值   默认 false 表示删除所有筛选数据
如果赋值为true 则表示只删除第一条复合的文档
e.g. 
db.class0.remove({$or:[{age:{$exists:false}},{age:{$gt:100}}]})
删除第一个复合条件的文档
db.class0.remove({sex:{$exists:false}},true)
删除集合中所有文档
db.collectionName.remove({})
练习:
1. 创建一个数据库 名字grade
use grade
2. 数据库中创建一个集合名字 class
3. 集合中插入若干数据 文档格式如下
{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong
computer
db.class.insert([
{name:"zhang",age:10,sex:'m',hobby:['a','b','c']},
.....
])
4. 查找练习
查看班级所有人信息
find()
查看班级中年龄为8岁的学生信息
find({age:8})
查看年龄大于10岁的学生信息
find({age:{$gt:10}})
查看年龄在 4---8岁之间的学生信息
find({age:{$gte:4,$lte:8}})
找到年龄为6岁且为男生的学生
find({age:6,sex:'m'})
找到年龄小于7岁或者大于10岁的学生
find({$or:[age:{$lt:7},age:{$gt:10}]})
找到年龄是8岁或者11岁的学生
find({age:{$in:[8,11]}})
找到兴趣爱好有两项的学生
find({hobby:{$size:2}})
找到兴趣爱好有draw的学生
find({hobby:"draw"})
找到既喜欢画画又喜欢跳舞的学生
find({hobby:{$all:["draw","dance"]}})
统计爱好有三项的学生人数
find({hobby:{$size:3}}).count()
找出本班年龄第二大的学生
find().sort({age:-1}).skip(1).limit(1)
查看学生的兴趣范围
db.class.distinct('hobby')
将学生按年龄排序找到年龄最大的三个
find().sort({age:-1}).limit(3)
删除所有 年级大于12或者小于4岁的学生
remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
作业 : 复习 数据的查找 和删除操作
mongo练习

MangoDB基础-02相关推荐

  1. Java/Android基础-02

    Java基础-02 概念 面向对象编程 将某一类事物抽象化,确定如何操作数据然后再考虑如何操作数据.然后再考虑下如何组织数据 特点 属性: 用来描述对象的数据元素称为对象的属性. 方法: 对象的属性进 ...

  2. java 01 02_Java知识系统回顾整理01基础02面向对象01类和对象

    一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一 ...

  3. Matplotlib基础02:散点图、折线图与柱状图

    Matplotlib基础02:散点图.折线图与柱状图 散点图 散点图Scatter: 是数据点在直角坐标系中的分布图,可以让我们对数据分析规律,得到数据变化的趋势,进而进行数据分组. API:scat ...

  4. 电大计算机应用技术基础形考二,贵州电大2020年春季《计算机应用技术基础》计算机应用技术基础02任务满分...

    2020年春季<计算机应用技术基础>计算机应用技术基础02任务8 e0 T4 M9 X5 Z! l' ? 1.[判断题] 存储器容量的基本单位是字节.(    ) # n( _/ [' R ...

  5. 视频教程-桫哥-GOlang基础-02函数-Go语言

    桫哥-GOlang基础-02函数 多年互联网从业经验: 有丰富的的企业网站.手游.APP开发经验: 曾担任上海益盟软件技术股份有限公司项目经理及产品经理: 参与项目有益盟私募工厂.睿妙影音家庭物联网设 ...

  6. MySQL数据库基础02 韩顺平 自学笔记

    MySQL数据库基础02 sql表查询增强 分页查询 分组函数和分组子句 数据分组的总结 多表查询 问题的引出 多表查询的练习 自连接 子查询 子查询当作临时表使用 在多行子查询中使用all操作符 在 ...

  7. Java基础-02(基础语法)

    Java基础-02(基础语法) 一 注释 加粗样式 注释用来解释和说明程序的文字,注释是不会被执行的. 1.1单行注释 //这是一条单行注释 public int i; 1.2多行注释 /* 这是 * ...

  8. java基础-02数据类型

    基本类型 整数 byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 最小值是 -128(-2^7) 最大值是 127(2^7-1) 默认值是 0 byte 类型用在大型数组中节约空间 ...

  9. Java基础02 面向对象

    文章目录 01 面向对象基础 1.设计对象并使用 1.1 类和对象 1.2 类的几个补充注意事项 2.封装 2.1 封装的概念 2.2 private关键字 3.this关键字 3.1 就近原则 3. ...

  10. IOS的UI基础02

    IOS--UI基础 时间:2015.11.14 内容目录: 1.关于UIImage相关的使用,以及最后的Model的归纳性理解. 2.资源存放的问题 3.pathForResource + filaU ...

最新文章

  1. Openstack Paste.ini 文件详解
  2. 锋利的jQuery--关于$(document).ready()函数及jQuery代码风格
  3. rfid1-stc11f32x
  4. Windows Phone开发(4):框架和页
  5. OPPO Reno7/Reno7 Pro今天开售:首发IMX709超感光猫眼镜头
  6. 用js实现的对css的一些操作方法
  7. UISwitch——开关控件
  8. 【原创】StackDocklet 完美攻略
  9. 数据抽取的常见理论方法
  10. 在linux上删除文件夹,在Linux系统下删除文件夹
  11. 模型压缩——重参数化
  12. 支付宝小程序-实名认证流程讲解
  13. C#(pronounced: see sharp) 与 .NET
  14. 登录页面渗透测试思路总结
  15. nvidia英伟达和七彩虹什么关系?为啥发布3080的是英伟达,七彩虹会给3080一个报价?
  16. 一文讲透鱼眼相机畸变矫正,及目标检测项目应用
  17. 普通美国人把钱花哪儿了
  18. 让你的浏览器具备Wap功能
  19. Nodejs修改全局仓库设置方案
  20. 毕业论文答辩技巧详解(毕业生必备)

热门文章

  1. 斗鱼视频sign签名逆向分析
  2. 好用的代码加密软件,编程,编译数据安全
  3. Android LitePal库详解
  4. 模拟I2C怎么用--教你使用GPIO口模拟I2C总线协议
  5. 粒子群优化算法python
  6. 西门子step7安装注册表删除_西门子step7及软件包的完全卸载方法
  7. MXF到MP4转换器:如何轻松地将MXF转换成MP4
  8. 苹果ID激活锁查询工具v1.2
  9. 深度装机大师一键重装_电脑重装系统步骤
  10. mysql中存储过程和函数区别