Insert, query, update and delete data in MongoDB database-intensive exercises (1)
Preface
This environment is based on the Centos 7.8 system to build mongodb-enterprise-4.2.8 learning environment For
specific construction, please refer to mongodb-enterprise-4.2.8 environment construction
1、使用yum在线安装MongoDB
https://blog.csdn.net/XY0918ZWQ/article/details/113809564
2、源码安装MongoDB并配置服务脚本
https://blog.csdn.net/XY0918ZWQ/article/details/113809564
3、基本操作作业
1)创建一个数据库 名字grade
MongoDB Enterprise > use grade
switched to db grade
MongoDB Enterprise > db
grade
2)数据库中创建一个集合名字 class
MongoDB Enterprise > db.createCollection('class')
{
"ok" : 1 }
MongoDB Enterprise > db.getCollection('class')
grade.class
3)集合中插入若干数据
MongoDB Enterprise > db.class.insertMany([
... {
name:'张扬',age:3,sex:'m',hobby:['draw','sing','dance']},
... {
name:'王钊',age:3,sex:'m',bobby:['sing']},
... {
name:'梁涛',age:8,sex:'m',bobby:['sing','dance','computer']},
... {
name:'王亮',age:4,sex:'m',bobby:['sing','basketball','computer']},
... {
name:'唐伟',age:4,sex:'m',bobby:['basketball','computer']},
... {
name:'朱晓鹏',age:4,sex:'m',bobby:['football']},
... {
name:'师娜娜',age:5,sex:'F',bobby:['sing','dance','pingpong']},
... {
name:'刘婷阳',age:5,sex:'F',bobby:['sing','dance']},
... {
name:'马帅帅',age:5,sex:'m',bobby:['sing']},
... {
name:'程阳阳',age:6,sex:'m',bobby:['sing','dance','draw']},
... {
name:'葛丽丽',age:7,sex:'F',bobby:['draw']},
... {
name:'姚媛媛',age:8,sex:'F',bobby:['sing','dance','draw']},
... {
name:'蒙卫国',age:8,sex:'m',bobby:['sing','basketball','draw']},
... {
name:'赵晓娜',age:4,sex:'F',bobby:['sing','dance','computer','basketball','draw']},
... {
name:'郑玲玲',age:8,sex:'F',bobby:['sing','draw']},
... {
name:'汤瑞瑞',age:9,sex:'F',bobby:['dance','draw']},
... {
name:'刘婷',age:11,sex:'f',bobby:['dance','draw','sing']},
... {
name:'郑杨',age:11,sex:'m',bobby:['dance','basketball']},
... {
name:'史小裕',age:12,sex:'f',bobby:['dance','football']},
... {
name:'程资阳',age:13,sex:'f',bobby:['dance','pingpong']},
... {
name:'赵磊',age:14,sex:'m',bobby:['dance','sing']},
... {
name:'赵磊',age:15,sex:'m',bobby:['dance','draw','sing']},
... {
name:'张子娇',age:8,sex:'F',bobby:['sing','dance','draw']},
... {
name:'刘大伟',age:9,sex:'m',bobby:['sing','basketball','football','pingpong']},
... {
name:'郑甜甜',age:7,sex:'F',bobby:['sing','dance','draw']}
... ])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("602a7058310063fbb7d16ec1"),
ObjectId("602a7058310063fbb7d16ec2"),
ObjectId("602a7058310063fbb7d16ec3"),
ObjectId("602a7058310063fbb7d16ec4"),
ObjectId("602a7058310063fbb7d16ec5"),
ObjectId("602a7058310063fbb7d16ec6"),
ObjectId("602a7058310063fbb7d16ec7"),
ObjectId("602a7058310063fbb7d16ec8"),
ObjectId("602a7058310063fbb7d16ec9"),
ObjectId("602a7058310063fbb7d16eca"),
ObjectId("602a7058310063fbb7d16ecb"),
ObjectId("602a7058310063fbb7d16ecc"),
ObjectId("602a7058310063fbb7d16ecd"),
ObjectId("602a7058310063fbb7d16ece"),
ObjectId("602a7058310063fbb7d16ecf"),
ObjectId("602a7058310063fbb7d16ed0"),
ObjectId("602a7058310063fbb7d16ed1"),
ObjectId("602a7058310063fbb7d16ed2"),
ObjectId("602a7058310063fbb7d16ed3"),
ObjectId("602a7058310063fbb7d16ed4"),
ObjectId("602a7058310063fbb7d16ed5"),
ObjectId("602a7058310063fbb7d16ed6"),
ObjectId("602a7058310063fbb7d16ed7"),
ObjectId("602a7058310063fbb7d16ed8"),
ObjectId("602a7058310063fbb7d16ed9")
]
}
# 查看插入的数据
MongoDB Enterprise > db.class.find()
{
"_id" : ObjectId("602a7058310063fbb7d16ec1"), "name" : "张扬", "age" : 3, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec2"), "name" : "王钊", "age" : 3, "sex" : "m", "bobby" : [ "sing" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec3"), "name" : "梁涛", "age" : 8, "sex" : "m", "bobby" : [ "sing", "dance", "computer" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec4"), "name" : "王亮", "age" : 4, "sex" : "m", "bobby" : [ "sing", "basketball", "computer" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec5"), "name" : "唐伟", "age" : 4, "sex" : "m", "bobby" : [ "basketball", "computer" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec6"), "name" : "朱晓鹏", "age" : 4, "sex" : "m", "bobby" : [ "football" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec7"), "name" : "师娜娜", "age" : 5, "sex" : "F", "bobby" : [ "sing", "dance", "pingpong" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec8"), "name" : "刘婷阳", "age" : 5, "sex" : "F", "bobby" : [ "sing", "dance" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ec9"), "name" : "马帅帅", "age" : 5, "sex" : "m", "bobby" : [ "sing" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16eca"), "name" : "程阳阳", "age" : 6, "sex" : "m", "bobby" : [ "sing", "dance", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ecb"), "name" : "葛丽丽", "age" : 7, "sex" : "F", "bobby" : [ "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ecc"), "name" : "姚媛媛", "age" : 8, "sex" : "F", "bobby" : [ "sing", "dance", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ecd"), "name" : "蒙卫国", "age" : 8, "sex" : "m", "bobby" : [ "sing", "basketball", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ece"), "name" : "赵晓娜", "age" : 4, "sex" : "F", "bobby" : [ "sing", "dance", "computer", "basketball", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ecf"), "name" : "郑玲玲", "age" : 8, "sex" : "F", "bobby" : [ "sing", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed0"), "name" : "汤瑞瑞", "age" : 9, "sex" : "F", "bobby" : [ "dance", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed1"), "name" : "刘婷", "age" : 11, "sex" : "f", "bobby" : [ "dance", "draw", "sing" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed2"), "name" : "郑杨", "age" : 11, "sex" : "m", "bobby" : [ "dance", "basketball" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed3"), "name" : "史小裕", "age" : 12, "sex" : "f", "bobby" : [ "dance", "football" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed4"), "name" : "程资阳", "age" : 13, "sex" : "f", "bobby" : [ "dance", "pingpong" ] }
Type "it" for more
MongoDB Enterprise > it
{
"_id" : ObjectId("602a7058310063fbb7d16ed5"), "name" : "赵磊", "age" : 14, "sex" : "m", "bobby" : [ "dance", "sing" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed6"), "name" : "赵磊", "age" : 15, "sex" : "m", "bobby" : [ "dance", "draw", "sing" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed7"), "name" : "张子娇", "age" : 8, "sex" : "F", "bobby" : [ "sing", "dance", "draw" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed8"), "name" : "刘大伟", "age" : 9, "sex" : "m", "bobby" : [ "sing", "basketball", "football", "pingpong" ] }
{
"_id" : ObjectId("602a7058310063fbb7d16ed9"), "name" : "郑甜甜", "age" : 7, "sex" : "F", "bobby" : [ "sing", "dance", "draw" ] }
--- 查询操作
4)查询操作
查看班级所有人信息
MongoDB Enterprise > db.class.find().pretty()
查看班级中年龄为8岁的学生信息
MongoDB Enterprise > db.class.find({
age:8}).pretty()
查看年龄大于10岁的学生信息
MongoDB Enterprise > db.class.find({
age:{
$gt:10}}).pretty()
查看年龄在 4---8岁之间的学生信息
MongoDB Enterprise > db.class.find({
age:{
$gte:4,$lte:8}}).pretty()
找到年龄为6岁且为男生的学生
MongoDB Enterprise > db.class.find({
age:6,sex:'m'}).pretty()
找到年龄小于7岁或者大于10岁的学生
MongoDB Enterprise > db.class.find({
$or:[{
age:{
$lt:7}},{
age:{
$gt:10}}]}).pretty()
找到年龄是8岁或者11岁的学生
MongoDB Enterprise > db.class.find({
$or:[{
age:8},{
age:11}]}).pretty()
或者
MongoDB Enterprise > db.class.find({
age:{
$in:[8,11]}}).pretty()
找到兴趣爱好有两项的学生
MongoDB Enterprise > db.class.find({
hobby:{
$size:2}})
找到兴趣爱好有draw的学生
MongoDB Enterprise > db.class.find({
hobby:{
$in:['draw']}})
或者
MongoDB Enterprise > db.class.find({
hobby:'draw'}).pretty()
找到既喜欢画画又喜欢跳舞的学生
MongoDB Enterprise > db.class.find({
hobby:'dance',hobby:'draw'})
或者
MongoDB Enterprise > db.class.find({
hobby:{
$all:['draw','dance']}})
统计爱好有三项的学生人数
MongoDB Enterprise > db.class.find({
hobby:{
$size:3}}).count()
找出本班年龄第二大的学生
MongoDB Enterprise > db.class.find({
},{
name:1,age:1,_id:0}).sort({
age: -1}).skip(1).limit(1)
或者
MongoDB Enterprise > db.class.find({
},{
name:1,age:1,_id:0}).sort({
age: -1}).limit(1).skip(1)
查看学生的兴趣范围
MongoDB Enterprise > db.class.distinct('hobby')
将学生按年龄排序找到年龄最大的三个
MongoDB Enterprise > db.class.find({
},{
name:1,age:1,_id:0}).sort({
age: -1}).limit(3)
5)增加、更新、删除、统计
删除所有年纪大于12或者小于4岁的学生
MongoDB Enterprise > db.class.remove({
$or:[{
age:{
$gt:12}},{
age:{
$lt:4}}]})
将张子娇的年龄变为8岁 兴趣爱好变为 跳舞 画画
MongoDB Enterprise > db.class.update({
name:'张子娇'},{
$set:{
age:8,hobby:['dance','draw']}})
追加张子娇兴趣爱好 唱歌
MongoDB Enterprise > db.class.update({
name:'张子娇'},{
$set:{
hobby:['dance','draw','sing']}})
张子娇兴趣爱好增加 吹牛 打篮球
MongoDB Enterprise > db.class.update({
name:'张子娇'},{
$set:{
hobby:['dance','draw','sing','basketball','吹牛']}})
师娜娜增加爱好,跑步和唱歌,但是不要和以前的重复
MongoDB Enterprise > db.class.update({
name:'张子娇'},{
$set:{
hobby:["sing", "dance", "pingpong",'runing','sing'] }})
该班所有同学年龄加1
MongoDB Enterprise > db.class.update({
},{
$inc:{
age:2}},{
multi:true})
删除马帅帅的sex属性
MongoDB Enterprise > db.class.update({
name:'马帅帅'},{
$unset:{
sex:1}})