MongoDB-练习题

2020-01-06  本文已影响0人  小橙子_43db

网上找的一些关于MongoDB的练习题,熟悉一下基本的增删改查操作。

1.进入my_test数据库

use my_test

2.向数据库的user集合中插入一个文档 

db.user.insert({username:"orange"})

3.查询user集合中的文档

db.user.find();

4.向数据库的user集合中插入一个文档 

db.user.insert({username:"apple",password:"123"})

5.查询数据库user集合中的文档

db.user.find()

结果:{

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange"

}

{

    "_id" : ObjectId("5e105490d8231babdfa02b64"),

    "username" : "apple",

    "password" : "123"

}

6.统计数据库user集合中的文档数量

db.user.find().count()

结果:2

7.查询数据库user集合中username为apple的文档

db.user.find({username:"apple"})

结果:{

    "_id" : ObjectId("5e105490d8231babdfa02b64"),

    "username" : "apple",

    "password" : "123"

}

8.向数据库user集合中的username为orange的文档,添加一个isActive属性,属性值为true

db.user.update(

    {username:"orange"},

    {$set:{isActive:true}}

)

结果{

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange",

    "isActive" : true

}

9.使用{username:"tangseng"} 替换 username 为 zhubajie的文档

db.user.update(

    {username:"apple"},

    {$set:{username:"banana"}}

)

结果:{

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange",

    "isActive" : true

}

{

    "_id" : ObjectId("5e105490d8231babdfa02b64"),

    "username" : "banana",

    "password" : "123"

}

10.删除username为sunwukong的文档的address属性

db.user.update(

    {username:"banana"},

    {$unset:{password:"xxx"}}

)

结果:{

    "_id" : ObjectId("5e105490d8231babdfa02b64"),

    "username" : "banana"

}

11.向username为orange的文档中,添加一个hobby:{cities:["beijing","shanghai","shenzhen"] , movies:["sanguo","hero"]}

//MongoDB的文档的属性值也可以是一个文档,当一个文档的属性值是一个文档时,我们称这个文档叫做 内嵌文档

db.user.update(

    {username:"orange"},

    {$set:

        {hobby:

            {cities:["beijing","shanghai","guangzhou"],movies:["sanguo","hero"]}

        }

    }

)

结果

{

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange",

    "isActive" : true,

    "hobby" : {

        "cities" : [

            "beijing",

            "shanghai",

            "guangzhou"

        ],

        "movies" : [

            "sanguo",

            "hero"

        ]

    }

}

12.略
13.查询喜欢电影hero的文档

db.user.find({'hobby.movies':"hero"}) //使用内嵌属性来查询时需要用引号

结果:

{

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange",

    "isActive" : true,

    "hobby" : {

        "cities" : [

            "beijing",

            "shanghai",

            "guangzhou"

        ],

        "movies" : [

            "sanguo",

            "hero"

        ]

    }

}

14.向tangseng中添加一个新的电影Interstellar

db.user.update( {username:"orange"}, {$push:{'hobby.movies':"Interstellar"}})

    "_id" : ObjectId("5e105105d8231babdfa02b63"),

    "username" : "orange",

    "isActive" : true,

    "hobby" : {

        "cities" : [

            "beijing",

            "shanghai",

            "guangzhou"

        ],

        "movies" : [

            "sanguo",

            "hero",

            "Interstellar"

        ]

    }

}

15.删除喜欢beijing的用户

db.user.remove({"hobby.cities":"beijing"})

结果:{

    "_id" : ObjectId("5e105490d8231babdfa02b64"),

    "username" : "banana"

}

16.删除user集合

db.user.remove({})

db.user.drop()

17.向numbers中插入2000条数据

var nums = []

for(var i=1;i<=2000;i++)

{

    nums.push({num:i})

}

db.numbers.insert(nums);

18.查询numbers中num为500的文档

db.numbers.find({num:500})

19.查询numbers中num大于500的文档

db.numbers.find({num:{$gt:500}})

20.查询numbers中num小于30的文档

db.numbers.find({num:{$lt:30}})

21.查询numbers中num大于40小于50的文档

db.numbers.find({num:{$gt:40,$lt:50}})

22.略

23.查看numbers集合中的前10条数据

db.numbers.find({}).limit(10)

24.查看numbers集合中的第11条到20条数据

db.numbers.find({}).skip(10).limit(10)

25.略

26.将dept和emp集合导入到数据库中,方法一:将数据构造成一个对象数组用命令行插入,方法二:新建json格式文件emp.json和dept.json,使用文件导入。

34.统计各部门的人数

db.emp.aggregate([{$group:{_id:"$depno",num_tutorial:{$sum:1}}}])

35.统计各部门的平均工资

db.emp.aggregate([{$group:{_id:"$depno",num_tutorial:{$avg:"$sal"}}}])

数据

//部门数据(dept)

{

  "_id" : ObjectId("5941f2bac1bc86928f4de49a"),

  "deptno" : 10.0,

  "dname" : "财务部",

  "loc" : "北京"

}

{

  "_id" : ObjectId("5941f2bac1bc86928f4de49b"),

  "deptno" : 20.0,

  "dname" : "办公室",

  "loc" : "上海"

}

{

  "_id" : ObjectId("5941f2bac1bc86928f4de49c"),

  "deptno" : 30.0,

  "dname" : "销售部",

  "loc" : "广州"

}

{

  "_id" : ObjectId("5941f2bac1bc86928f4de49d"),

  "deptno" : 40.0,

  "dname" : "运营部",

  "loc" : "深圳"

}

//员工数据(emp)

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4ac"),

  "empno" : 7369.0,

  "ename" : "林冲",

  "job" : "职员",

  "mgr" : 7902.0,

  "hiredate" : ISODate("1980-12-16T16:00:00Z"),

  "sal" : 800.0,

  "depno" : 20.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4ad"),

  "empno" : 7499.0,

  "ename" : "孙二娘",

  "job" : "销售",

  "mgr" : 7698.0,

  "hiredate" : ISODate("1981-02-19T16:00:00Z"),

  "sal" : 1600.0,

  "comm" : 300.0,

  "depno" : 30.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4ae"),

  "empno" : 7521.0,

  "ename" : "扈三娘",

  "job" : "销售",

  "mgr" : 7698.0,

  "hiredate" : ISODate("1981-02-21T16:00:00Z"),

  "sal" : 1250.0,

  "comm" : 500.0,

  "depno" : 30.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4af"),

  "empno" : 7566.0,

  "ename" : "卢俊义",

  "job" : "经理",

  "mgr" : 7839.0,

  "hiredate" : ISODate("1981-04-01T16:00:00Z"),

  "sal" : 2975.0,

  "depno" : 20.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b0"),

  "empno" : 7654.0,

  "ename" : "潘金莲",

  "job" : "销售",

  "mgr" : 7698.0,

  "hiredate" : ISODate("1981-09-27T16:00:00Z"),

  "sal" : 1250.0,

  "comm" : 1400.0,

  "depno" : 30.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b1"),

  "empno" : 7698.0,

  "ename" : "西门庆",

  "job" : "经理",

  "mgr" : 7839.0,

  "hiredate" : ISODate("1981-04-30T16:00:00Z"),

  "sal" : 2850.0,

  "depno" : 30.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b2"),

  "empno" : 7782.0,

  "ename" : "柴进",

  "job" : "经理",

  "mgr" : 7839.0,

  "hiredate" : ISODate("1981-06-08T16:00:00Z"),

  "sal" : 2450.0,

  "depno" : 10.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b3"),

  "empno" : 7788.0,

  "ename" : "公孙胜",

  "job" : "分析师",

  "mgr" : 7566.0,

  "hiredate" : ISODate("1987-07-12T16:00:00Z"),

  "sal" : 3000.0,

  "depno" : 20.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b4"),

  "empno" : 7839.0,

  "ename" : "宋江",

  "job" : "董事长",

  "hiredate" : ISODate("1981-11-16T16:00:00Z"),

  "sal" : 5000.0,

  "depno" : 10.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b5"),

  "empno" : 7844.0,

  "ename" : "阎婆惜",

  "job" : "销售",

  "mgr" : 7698.0,

  "hiredate" : ISODate("1981-09-07T16:00:00Z"),

  "sal" : 1500.0,

  "comm" : 0.0,

  "depno" : 30.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b6"),

  "empno" : 7876.0,

  "ename" : "李逵",

  "job" : "职员",

  "mgr" : 7902.0,

  "hiredate" : ISODate("1987-07-12T16:00:00Z"),

  "sal" : 1100.0,

  "depno" : 20.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b7"),

  "empno" : 7900.0,

  "ename" : "武松",

  "job" : "职员",

  "mgr" : 7782.0,

  "hiredate" : ISODate("1981-12-02T16:00:00Z"),

  "sal" : 950.0,

  "depno" : 10.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b8"),

  "empno" : 7902.0,

  "ename" : "吴用",

  "job" : "分析师",

  "mgr" : 7566.0,

  "hiredate" : ISODate("1981-12-02T16:00:00Z"),

  "sal" : 3000.0,

  "depno" : 20.0

}

{

  "_id" : ObjectId("5941f5bfc1bc86928f4de4b9"),

  "empno" : 7934.0,

  "ename" : "鲁智深",

  "job" : "职员",

  "mgr" : 7782.0,

  "hiredate" : ISODate("1982-01-22T16:00:00Z"),

  "sal" : 1300.0,

  "depno" : 10.0

}

上一篇下一篇

猜你喜欢

热点阅读