MongoDB练习

目录

mongodb作业

1. 创建一个数据库 名字grade 

2. 数据库中创建一个集合名字 class

3. 集合中插入若干数据 文档格式如下{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}hobby: draw  sing  dance  basketball football  pingpong  computer 

4. 查找

查看班级所有人信息

查看班级中年龄为8岁的学生信息

查看年龄大于10岁的学生信息

查看年龄在 4---8岁之间的学生信息 

找到年龄为6岁且为男生的学生

找到年龄小于7岁或者大于10岁的学生

找到年龄是8岁或者11岁的学生

找到兴趣爱好有两项的学生

找到兴趣爱好有draw的学生

找到既喜欢画画又喜欢跳舞的学生

统计爱好有三项的学生人数

找出本班年龄第二大的学生

查看学生的兴趣范围

将学生按年龄排序找到年龄最大的三个

删除所有 年级大于12或者小于4岁的学生

5. 增加、更新、删除、统计

1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

2. 追加小明兴趣爱好  唱歌

3. 小王兴趣爱好增加  吹牛 打篮球

4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复

5. 该班所有同学年龄加1

6. 删除小明的sex属性

7. 删除小李兴趣中的第一项

8. 将小红兴趣中的画画爱好删除

4.增加分数域 score:{'chinese':88,'english':78,'math':98}

1. 按照性别分组统计每组人数

2. 按照姓名分组,过滤出有重名的同学

3. 统计每名男生的语文成绩

4. 将女生按照英语分数降序排列


mongodb作业

1. 创建一个数据库 名字grade 

MongoDB Enterprise > use grade

2. 数据库中创建一个集合名字 class

MongoDB Enterprise > db.createCollection("class");

3. 集合中插入若干数据 文档格式如下
{name:'zhang',age;10,sex:'m',hobby:['a','b','c']}
hobby: draw  sing  dance  basketball football  pingpong  computer 

MongoDB Enterprise > db.class.insert({name:'xiaozhang',age:6,sex:'m',hobby:['draw','pingpong']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoxiang',age:9,sex:'m',hobby:['draw','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaowu',age:10,sex:'m',hobby:['sing','basketball']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaoliu',age:11,sex:'m',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaozeng',age:4,sex:'f',hobby:['footboll','dance']})
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise > db.class.insert({name:'xiaohe',age:8,sex:'f',hobby:['sing','dance']})
WriteResult({ "nInserted" : 1 })

4. 查找

查看班级所有人信息

MongoDB Enterprise > db.class.find();
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

查看班级中年龄为8岁的学生信息

MongoDB Enterprise > db.class.find({age:8});
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

查看年龄大于10岁的学生信息

MongoDB Enterprise > db.class.find({age:{$gt:10}})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }

查看年龄在 4---8岁之间的学生信息 

MongoDB Enterprise > db.class.find({age:{$gte:4,$lte:8}})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到年龄为6岁且为男生的学生

MongoDB Enterprise > db.class.find({age:6,sex:'m'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }

找到年龄小于7岁或者大于10岁的学生

MongoDB Enterprise > db.class.find({$or:[{age:{$lt:7}},{age:{$gt:10}}]})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }

找到年龄是8岁或者11岁的学生

MongoDB Enterprise > db.class.find({$or:[{age:8},{age:11}]})
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到兴趣爱好有两项的学生

MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 2"})

{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "_id" : ObjectId("64b524f1391dfb21d3ad0779"), "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b5250a391dfb21d3ad077a"), "name" : "xiaozeng", "age" : 4, "sex" : "f", "hobby" : [ "footboll", "dance" ] }
{ "_id" : ObjectId("64b52528391dfb21d3ad077b"), "name" : "xiaohe", "age" : 8, "sex" : "f", "hobby" : [ "sing", "dance" ] }

找到兴趣爱好有draw的学生

MongoDB Enterprise > db.class.find({hobby:'draw'})
{ "_id" : ObjectId("64b524c9391dfb21d3ad0776"), "name" : "xiaozhang", "age" : 6, "sex" : "m", "hobby" : [ "draw", "pingpong" ] }
{ "_id" : ObjectId("64b524d2391dfb21d3ad0777"), "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

找到既喜欢画画又喜欢跳舞的学生

MongoDB Enterprise > db.class.find({hobby:{$all:['dance','draw']}})

统计爱好有三项的学生人数

MongoDB Enterprise > db.class.find({$where:"this.hobby.length == 3"})

找出本班年龄第二大的学生

MongoDB Enterprise > db.class.find({}).sort({age:-1}).skip(1).limit(1)
{ "_id" : ObjectId("64b524e1391dfb21d3ad0778"), "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }

查看学生的兴趣范围

MongoDB Enterprise > db.class.distinct('hobby')
[ "draw", "pingpong", "basketball", "sing", "dance", "footboll" 

将学生按年龄排序找到年龄最大的三个

MongoDB Enterprise > db.class.find({},{_id:0}).sort({age:-1}).limit(3)
{ "name" : "xiaoliu", "age" : 11, "sex" : "m", "hobby" : [ "footboll", "dance" ] }
{ "name" : "xiaowu", "age" : 10, "sex" : "m", "hobby" : [ "sing", "basketball" ] }
{ "name" : "xiaoxiang", "age" : 9, "sex" : "m", "hobby" : [ "draw", "basketball" ] }

删除所有 年级大于12或者小于4岁的学生

MongoDB Enterprise > db.class.deleteMany({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
{ "acknowledged" : true, "deletedCount" : 0 }

5. 增加、更新、删除、统计

注:下面操作使用的另一个集合

1. 将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画

MongoDB Enterprise > db.class.update({'name':'小红'},{$set:{'age':8,'hobby':['dance','draw']}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


2. 追加小明兴趣爱好  唱歌

MongoDB Enterprise > db.class.update({'name':'小白'},{$push:{'hobby':'sing'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

3. 小王兴趣爱好增加  吹牛 打篮球

MongoDB Enterprise > db.class.update({'name':'小王'},{$push:{'hobby':{$each:['basketball','吹牛']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

4. 小李增加爱好,跑步和唱歌,但是不要和以前的重复

MongoDB Enterprise > db.class.update({'name':'小珍'},{$addToSet:{hobby:{$each:['running','sing']}}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

5. 该班所有同学年龄加1

MongoDB Enterprise > db.class.update({},{$inc:{age:1}},false,true)
WriteResult({ "nMatched" : 10, "nUpserted" : 0, "nModified" : 10 })

6. 删除小明的sex属性

MongoDB Enterprise > db.class.update({'name':'小白'},{$unset:{sex:0}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

7. 删除小李兴趣中的第一项

MongoDB Enterprise > db.class.update({'name':'小哲'},{$pop:{hobby:-1}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

8. 将小红兴趣中的画画爱好删除

MongoDB Enterprise > db.class.update({'name':'小红'},{$pull:{hobby:'draw'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


4.增加分数域 score:{'chinese':88,'english':78,'math':98}


1. 按照性别分组统计每组人数

MongoDB Enterprise > db.class.aggregate([ { $group: { _id: "$sex", count: { $sum: 1 } } }])
{ "_id" : null, "count" : 1 }
{ "_id" : "f", "count" : 4 }
{ "_id" : "m", "count" : 5 }


2. 按照姓名分组,过滤出有重名的同学

MongoDB Enterprise > db.class.aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

3. 统计每名男生的语文成绩

MongoDB Enterprise > db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
{ "name" : "小刚", "score" : { "chinese" : 80 } }
{ "name" : "小猛", "score" : { "chinese" : 89 } }
{ "name" : "小绿", "score" : { "chinese" : 78 } }
{ "name" : "小青", "score" : { "chinese" : 75 } }
{ "name" : "小王", "score" : { "Chinese" : 80 } }


4. 将女生按照英语分数降序排列

MongoDB Enterprise > db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}])

{ "_id" : ObjectId("64a5459ca1a01a01ed810f6c"), "name" : "小红", "age" : 9, "sex" : "f", "hobby" : [ "dance" ], "score" : { "chinese" : 95, "english" : 90, "math" : 85 } }
{ "_id" : ObjectId("64a545d7a1a01a01ed810f6d"), "name" : "小珍", "age" : 20, "sex" : "f", "hobby" : [ "draw", "sing", "dance", "computer", "running" ], "score" : { "chinese" : 93, "english" : 88, "math" : 94 } }
{ "_id" : ObjectId("64a548f0a1a01a01ed810f74"), "name" : "小霞", "age" : 21, "sex" : "f", "hobby" : [ "basketball", "dance", "draw" ], "score" : { "chinese" : 92, "english" : 85, "math" : 76 } }
{ "_id" : ObjectId("64a5463ea1a01a01ed810f6f"), "name" : "小芳", "age" : 21, "sex" : "f", "hobby" : [ "draw", "sing" ], "score" : { "chinese" : 86, "english" : 80, "math" : 90 } }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值