1.创建一个数据库 名字grade
powershell
use grade
2.数据库中创建一个集合名字 class
powershell
db.createCollection("class")
3.集合中插入若干数据
powershell
db.class.insert([{name:"zhang",age:10,sex:'m',hobby:['a','b','c']}])
4.查找
查看班级所有人信息
powershell
db.class.find()
查看班级中年龄为8岁的学生信息
powershell
db.class.find({age:8})
查看年龄大于10岁的学生信息
powershell
db.class.find({age:{$gt:10}})
查看年龄在 4---8岁之间的学生信息
powershell
db.class.find({age:{$gt:4,$lte:8}})
找到年龄为6岁且为男生的学生
powershell
db.class.find({age:6,sex:'m'})
找到年龄小于7岁或者大于10岁的学生
powershell
db.class.find({$or:[age:{$lt:7},age:{$gt:10}]})
找到年龄是8岁或者11岁的学生
powershell
db.class.find({age:{$in:[8,11]}})
找到兴趣爱好有两项的学生
powershell
db.class.find({hobby:{$size:2}})
找到兴趣爱好有draw的学生
powershell
db.class.find({hobby:"draw"})
找到既喜欢画画又喜欢跳舞的学生
powershell
db.class.find({hobby:{$all:["draw","dance"]}})
统计爱好有三项的学生人数
powershell
db.class.find({hobby:{$size:3}}).count()
找出本班年龄第二大的学生
powershell
db.class.find().sort({age:-1}).skip(1).limit(1)
查看学生的兴趣范围
powershell
db.class.distinct('hobby')
将学生按年龄排序找到年龄最大的三个
powershell
db.class.find().sort({age:-1}).limit(3)
删除所有 年级大于12或者小于4岁的学生
powershell
remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
5.增加、更新、删除、统计
将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画
powershell
{$set:{age:8,hobby:['dance','draw']}}
追加小明兴趣爱好 唱歌
powershell
{$push:{hobby:'sing'}}
小王兴趣爱好增加 吹牛 打篮球
powershell
{$pushAll:{hobby:['吹牛','basketball']}}
小李增加爱好,跑步和唱歌,但是不要和以前的重复
powershell
{$addToSet:{hobby:{$each:['running','sing']}}}
该班所有同学年龄加1
powershell
update({},{$inc:{age:1}},false,true)
删除小明的sex属性
powershell
{$unset:{sex:0}}
删除小李兴趣中的第一项
powershell
{$pop:{hobby:-1}}
将小红兴趣中的画画爱好删除
powershell
{$pull:{hobby:'draw'}}
增加分数域 score:{'chinese':88,'english':78,'math':98}
按照性别分组统计每组人数
powershell
aggregate({$group:{_id:'$sex',num:{$sum:1}}})
按照姓名分组,过滤出有重名的同学
powershell
aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])
统计每名男生的语文成绩
powershell
aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
将女生按照英语分数降序排列
powershell
aggregate([{$match:{sex:'w'}},{$sort:{'score.english':-1}}])