一、数据库、集合的创建与管理
1.创建数据库和集合
(1)使用命令创建数据库myDB和集合collection1
use myDB
db.createCollection("collection1",{capped:true,size:6142800,max:10000})
(2)使用命令创建数据库testDB和集合collection2
use testDB
db.createCollection("collection2",{capped:true,size:6142800,max:10000})
2.查看数据库
(1)使用命令查看当前所有数据库
show dbs
(3)使用命令显示当前的数据库
db.stats()
(2)使用命令切换到数据库testDB
use testDB
3.删除数据库
(1)使用命令删除当前数据库testDB
db.dropDatabase()
(2)使用命令查看当前所有数据库
show dbs
4.创建集合
(1)使用命令切换到数据库myDB
use myDB
(2)使用命令显式创建集合students
db.createCollection("students", {capped:true,size:6142800,max:10000})
(3)使用命令显式创建集合teachers,要求该集合大小固定为1G,集合中最多允许1万条记录
db.createCollection("teachers",{capped:true,size:1073741824,max:10000})
(4)使用命令隐式创建集合employees,该集合里面有一条记录【姓名:张三,年龄:25,职位:程序员,部门:研发部,工资:9000】
db.employees.insert({"姓名":"张三","年龄":"25","职位":"程序员","部门":"研发部","工资":"9000"})
(5) 查看集合
使用命令查看当前数据库当中的所有集合
show collections
(6) 删除集合
(1)使用命令删除集合employees
db.employees.drop()
(2)使用命令查看当前数据库当中的所有集合
show collections
二、文档之增删改
1. 创建数据库mydb,给指定的集合添加文档。
use mydb
(1)用insert()向students集合中添加:_id为1001,姓名为张三,年龄为20的文档。
db.students.insert({_id:1001,姓名:"张三",年龄:30})
(2) 查询students表中的内容。
db.students.find()
(3) 用insert()向students集合中添加:_id为1001,姓名为李白,年龄为30的文档。
db.students.insert({_id:1001,姓名:"李白",年龄:30})
(4)用save()向students集合中添加:_id为1001,姓名为李白,年龄为20的文档。
db.students.save({_id:1001,姓名:"李白",年龄:20})
(5)向students中添加自己的姓名,性别,班级,年龄信息,婚否等信息。
db.students.insert({姓名:"董宁宁",性别:"女",班级:"20大数据1班",年龄信息:20,婚否:"否"})
(6)向students中添加:姓名-张三,性别-男,年龄-19,地址-天心区,父母-(姓名-张三他爸,年龄-49,工作-务农,姓名-张三他妈,年龄-45,工作-教师),所选课程-[Java,MySQL],成绩78、80。
db.students.insert({姓名:"张三",性别:"男",年龄:"19",地址:"天心区",父母:[{姓名:"张三他爸",年龄:49,工作:"务农",姓名:"张三他妈",年龄:45,工作:"教师"}],所选课程:["JAVA","MYSQL"],成绩:[78,80]})
(7)查询students表中的内容。
db.students.find()
(8)向test集合添加10000条数据,数据的内容为:女朋友1号-女朋友10000号
for(i=1;i<=10000;i++)
{db.test.insert({"name":"女朋友"+i+"号"})}
2. 删除文档
(1)使用命令显示students集合中的文档数
db.students.find().count()
(2)使用命令删除students集合中姓名为李白,年龄为20的文档
db.students.remove({姓名:"李白",年龄:20})
(3)使用命令删除test集合中的所有文档
db.test.remove({})
3.更新数据库
(1)数据准备,向users集合插入如下数据,截出插入语句:
db.users.insertMany([{_id:1000,name:"张三丰",sex:"m",age:70,collage:"老年大学"},{_id:1002,name:"张无忌",sex:"m",age:30,collage:"武当学院"},{_id:1003,name:"赵敏",sex:"f",age:30,collage:"皇家学院"},{_id:1004,name:"周芷若",sex:"f",age:18,collage:"峨眉学院"},{_id:1005,name:"宋青书",sex:"m",age:32,collage:"武当学院"},{_id:1006,name:"方世玉",sex:"m",age:30,collage:"少年学院"},{_id:1007,name:"于谦",sex:"m",age:32}])
db.users.find()
(2)显示users集合当中方世玉的名字修改为洪七公,college改为“丐帮”
db.users.update({name:"方世玉"},{$set:{name:"洪七公",collage:"丐帮"}})
(3)使用$set修改器为姓名为于谦的记录添加一个爱好字段,于谦有三大爱好:抽烟,喝酒,烫头
db.users.update({name:"于谦"},{$set:{于谦的三大爱好:"抽烟,喝酒,烫头"}})
(4)使用$set修改器将年龄为32的所有记录college改为清华大学
db.users.update({age:32},{$set:{collage:"清华大学"}},{multi:true})
(5)使用upsert参数将姓名为郭德纲的年龄更新为39岁。
db.users.update({name:"郭德纲"},{$set:{age:39}},true)
4. 创建数据库mydb,给指定的集合添加文档,数据如下。
db.students.insert([{name:"张三",sex:"m",age:19,course:["JAVA","MYSQL","mongoDB"],score:59},{name:"李四",sex:"f",age:20,course:["JAVA","mongoDB"],score:76},{name:"王五",sex:"f",age:19,course:["JAVA","Haddop"],score:88},{name:"赵六",sex:"m",age:21,course:["Linux","MYSQL",],score:95},{name:"钱八",sex:"m",age:19,course:["PS","Python"],score:62},{name:"金九",sex:"f",age:20,course:["JAVA","MYSQL"],score:56},{name:"银十",sex:"f",age:21}])
5.基本更新操作
(1)将所有年龄为19岁的学生年龄+5
db.students.update({age:19},{$inc:{age:+5}},{multi:true})
(2) 将所有年龄是20岁的人的成绩修改为89
db.students.update({age:20},{$set:{score:89}},{multi:true})
(3)删除“张三”的年龄、课程与成绩字段
db.students.update({"name":"张三"},{$unset:{"age":1,"course":1,"score":1}})
(4)将“张三”name字段名称修改为“姓名”
db.students.update({name:"张三"},{$rename:{name:"姓名"}})
(5)将“赵六”的姓名修改为“金九”
db.students.update({name:"赵六"},{$set:{name:"金九"}})
(6)将年龄为30岁学生姓名修改为“郭德纲”,score修改为97【提示:upsert】
db.students.update({age:30},{$set:{name:"郭德纲",score:97}},true)
6. 数组的更新
(1)向“张三”添加课程C语言
db.students.update({姓名:"张三"},{$push:{course:"C语言"}})
(2)向“李四”的课程追加一个“数据结构”
db.students.update({name:"李四"},{$push:{course:"数据结构"}})
(3)向“王五”的课程追加多个元素:“数据结构”和“C语言”
db.students.update({name:"王五"},{$push:{course:{$each:["数据结构","C语言"]}}})
(4)向“王五”的课程追加多个元素:“高等数学”和“Java”。【要求:插入的元素不能重复。提示:$addToSet和$each】
db.students.update({name:"王五"},{$addToSet:{course:{$each:["高等数学","JAVA"]}}})
(5)清空“李四”的课程信息。
db.students.update({"name":"李四"},{$unset:{"course":1}})
(6)删除“赵六”的“MySQL”这门课程
db.students.update({name:"赵六"},{$pull:{course:"MYSQL"}})