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. windows蓝屏代码

    原始链接 引用自  https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-code-referenc ...

  2. Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计

    实现点击不同树节点打开不同tab页展示不同datagrid表数据设计 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求描述 如上图, 1.点击左侧树,叶子 ...

  3. Node.js模块导入导出

    这篇文章本来是想模块导入导出和事件循环一起写的,但是感觉一起写的话会太长了,所以就分开两篇文章写吧.下一篇会重点介绍一下js中的事件循环,js代码到底是以何种顺序去执行的呢?我相信你看懂了事件循环再去 ...

  4. sql左外连接和右外连接的区别例子转摘

    sql左外连接和右外连接的区别   两个表:A(id,name)数据:(1,张三)(2,李四)(3,王五)B(id,name)数据:(1,学生)(2,老师)(4,校长) 左连接结果:select A. ...

  5. js 条件判断

    练习 小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数: 低于18.5:过轻 18.5-25:正常 25-28:过重 28-32:肥 ...

  6. win10 iis注册.net framework 此操作系统版本不支持此选项。

    利用dism工具 执行下面命令才成功 dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-fe ...

  7. 启动期间的内存管理之bootmem_init初始化内存管理–Linux内存管理(十二)

    1. 启动过程中的内存初始化 首先我们来看看start_kernel是如何初始化系统的, start_kerne定义在init/main.c?v=4.7, line 479 其代码很复杂, 我们只截取 ...

  8. js 学习之路8:for循环

    1. for循环 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content=&qu ...

  9. 图像分析函数:skimage.measure中的label、regionprops

    算法解释详细,有算法执行过程动态GIF图的:https://blog.csdn.net/icvpr/article/details/10259577 算法文字解释的简介易懂的:https://www. ...

  10. C#中@的作用

    1.在书写文件路径时,消除"/"的转义功能 string FileDirect = "C:\Text\Debug\Text.txt"; \\编译会报错 stri ...