1 创建数据库名为 grade
> use grade
switched to db grade 2 创建集合 class 3 插入若干数据 格式如下
{name:xxx,age:xxx,sex:xx,hobby:[xx,xx,xx]}
age : 7~14
hobby: draw, dance , running , sing, football , basketball, computer, python
> db.class.find() 4 查找
    1.查看所有人信息
db.class.find() 2.查看年龄为 8 岁信息
db.class.find({age:8}) 3.查看年龄大于 10 岁信息
db.class.find({age:{$gt:10}}) 4.查看年龄 8-12 岁信息
db.class.find({age:{$in:[8,9,10,11,12]}}) 5.查看年龄 7岁 且 喜欢画画的 男生信息
db.class.find({age:7,hobby:"draw",sex:"b"}) 6.查看年龄 小于8岁 或者 大于12岁的学生
db.class.find({$or:[{age:{$lt:8}},{age:{$gt:12}}]}) 7.查看年龄 9岁 或者 11岁的学生
db.class.find({$or:[{age:12},{age:9}]}) 8.查找有两个兴趣的学生
db.class.find({hobby:{$size:2}}) 9.查找喜欢计算机的同学
db.class.find({hobby:"computer"}) 10.查找既喜欢画画又喜欢跳舞的
db.class.find({hobby:{$all:["draw","dance"]}})
db.class.find({hobby:"dance",hobby:"draw"}) 11.统计兴趣爱好有三项的人数
db.class.find({hobby:{$size:3}}) 12.找出班级中年龄第二大的同学
db.class.find().sort({"age":-1})[1] 13.查看本班兴趣爱好行涵盖范围
db.class.distinct("hobby") 14.找到班级中年龄最小的三位同学
db.class.find().sort({age:1}).limit(3)

练习第二阶段
    使用之前的数据库
1. 将小红年龄改成8岁,兴趣爱好改成 跳舞画画
db.class.updateOne({name:"小红"},{$set:{age:8, hobby:["draw","dance"]}}) 2. 追加小明的兴趣爱好唱歌
db.class.updateOne({name:"小明"},{$push:{hobby:"sing"}}) 3.小王多了兴趣爱好吹牛,打篮球
db.class.updateOne({name:"小明"},{$pushAll:{hobby:["fox","basketball"]}}) 4.小李兴趣要增加跑步唱歌,但是不能是和已有的一样
db.class.updateOne({name:"小明"},{$addToSet:{hobby:{$each:["run","sing"]}}}) 5.班级所有年龄加一
db.class.updateMany({},{$inc:{age:1}}) 6.删除小明的sex属性
db.class.updateOne({},{$unset:{sex:""}}) 7.小李第一个兴趣爱好不要了
db.class.updateOne({name:"小李",{$pop:{hobby:-1}}}) 8.删除小红兴趣中的画画唱歌
db.class.updateOne({name:"小红",{$pullAll:{hobby:["draw","sing"]}}})

三阶段练习
    使用 grade 数据库完成
1.删除所有年龄 小于8岁,或者 大于12岁 的学生
db.class.deleteMany({$or:[{age:{$lt:8}},{age:{$gt:12}}]})
2.给小红第二项爱好变为 跳舞
db.class.updateOne({name:"小红"},{$set:{"hobby.1":"dance"}})
3.删除兴趣爱好中没有 画画 的学生
db.class.deleteMany({},{hobby:{$nin:["draw"]}})
4.给小王增加一个域: 备注:{民族:"回族", 习俗:"不吃猪肉"}
db.class.updateOne({name:"小王"},{$set:{备注:{民族:"回族", 习俗:"不吃猪肉"}}})
5.修改小王的备注域, 增加项: 宗教:"伊斯兰教"
db.class.updateOne({name:"小王"},{$set:{"备注.宗教":"伊斯兰教"}})

四阶段练习
    使用 grade 数据库完成
1. 将所有男生按照年龄升序排序结果不显示 _id
db.class.aggergate([{$match:{sex:"b"}},{$sort:{age:1}},{$project:{_id:0}}])
2. 统计班级是否有重名同学
db.class.aggergate({[$group:{_id:"$name",num:{$sum:1}}},{$match:{num:{$gt:1}}}])

mongoDB 小练习的更多相关文章

  1. 小程序 座位管理系统(二)(nodejs+mongodb+小程序)

    图片从左至右:登录图.湘大新闻页.教学楼页. 说明:  Node.js+mongodb.有些数据放在小程序里,有些数据放在mongodb里.和一相比布局稍作改动,密码改成了"111111&q ...

  2. 与你相遇好幸运,MongoDB小技巧

    保存为bat方便: "C://Program Files//MongoDB//Server//3.2//bin//mongod.exe" --dbpath=D://corp//db ...

  3. yii 使用 mongodb 小工具 YiiMongoDbSuite

    YiiMongoDbSuite下载链接: http://www.yiiframework.com/extension/yiimongodbsuite/ 如果你的yii和mongodb它已经建立了一个良 ...

  4. MongoDB小东西

    在mongodb中,show users 和db.system.users.find() 都能查看账户的相关信息,但是这两个命令有什么区别么? db.system.users.find() 是查看全局 ...

  5. MongoDB资料汇总

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存 ...

  6. mongodb的安装与简单操作

    MongoDB中文社区:http://www.mongoing.com     数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer  --->磁盘操作 1.高度事务性的场景 ...

  7. NodeJS实战:Express+Mongoose+ejs

    元宵还没到,先向所有朋友拜一个晚年~~~ 文章目录: 1.组件版本号 -- --node -- --express -- --Mongoose 2.初始化项目 firstblood -- --用 ex ...

  8. < high performance web sites > 阅读小记

    high performance web sites 1,减少HTTP请求数 (1)图片加载使用image maps 或者 CSS Sprite (2)使用非http协议,如(ftp:, file: ...

  9. Mongdb、Mysql、Redis、Memcache场景

    个人的一点理解,不确定一定准确,有不对处欢迎指出 全部数据使用mysql存储,确保安全.准确和持久 大数据.非安全性数据使用Mongodb 小数据.结构丰富.持久化(主从数据)使用redis 小数据. ...

随机推荐

  1. springboot 使用 redis

    springboot 自己是实现了一套 redis 缓存框架, 地址: https://www.cnblogs.com/huanggy/p/9473822.html, 通过配置即可轻松愉快地实现 某些 ...

  2. Android为TV端助力listview 非常重要的几个属性

    首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false Android:stackFromBottom="true" ...

  3. HTTP长连接--Keep-Alive

    一.HTTP/1.0 HTTP1.0版本的Keep-alive并不像HTTP1.1那样是默认发送的,所以要想连接得到保持,必须手动配置发送connection:keep-alive字段.若想断开kee ...

  4. [Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件

    1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...

  5. Git - git clone - 将远端仓库克隆拷贝到本地

    索引: 目录索引 参看代码 GitHub: git.txt 一.示例: git clone https://github.com/liumeng0403/lm.solution.git 二.说明: 1 ...

  6. 导致spring事务配置不起作用的一种原因

    @Component public class AnalyticsApplication { @Autowired private InitializationActionService initia ...

  7. Python面试笔记一

    目录 一.MySQL(30题) 二.django(15题) 三.Python部分(46题) 四.RESTful API设计指南(7题) 五.补充 一.MySQL(30题) 1.mysql如何做分页 m ...

  8. 安装指定版本的docker服务

    参考博客:Docker CE 镜像源站 参考博客:docker启动异常driver not supported 1. 说明 之前部署docker服务的时候都是安装最新的docker版本,并使用dock ...

  9. 在Visual Studio 2017上配置Glut

    在Visual Studio 2017上配置Glut 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在Visual Studio 2017上配置并使用 ...

  10. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...