网上找的一些关于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
}
网友评论