查看数据库
show databases
选择数据库
use 数据库名
注意:在mongodb中选择不存在的数据库时不会报错(隐式创建),当这个数据库中有内容后会展示
查看当前选择的数据库
db
删除数据库
db.dropDatabase()
删除当前选择的数据库
查看集合
show collections
创建集合
db.createCollection('集合名')
注意: 后期插入数据都是隐式创建集合
删除集合
db.xxx.drop()
mongodb文档增删改查
数据库主要用来存放项目数据, 数据库和集合的创建完成之后需要对文档(数据)进行增删改查
插入文档
- 语法
javascript db.集合名.insert(json数据)
集合若存在,则直接插入数据,若集合不存在,则隐式创建
- 练习:在test2数据库的c1集合中插入数据(名字叫yuweiqi 年龄18岁)
javascript use test2db.c1.insert({ name: "yuweiqi", age: 18}) // mongodb会给每一条文档加一个全球唯一的_id键
- 可以给每条数据自定义_id 但是强烈不推荐
- 只要在插入数据的时候加上自定义的_id既可覆盖
- 插入多条数据
javascript db.c1.insert([ {name: "zhangsan", age: 18}, {name: "zhaosi", age: 19}, {name: "wangwu", age: 20}] )// 一次性插入三条数据
- 如何快速插入多条数据
因为mongodb底层使用的是js引擎实现的,所以支持部分js语法
因此可以写for循环 - JavaScript for(var i = 0; i < 10; i++) { db.c1.insert({name: "a"+ i, age: i}) }
删除文档
JavaScript db.集合名.remove(条件, [,是否删除一条])是否删除一条:true 删除全部匹配的 false 删除一条(默认)
修改文档
- 基础语法
db.集合名.update(条件,新数据[,是否新增, 是否修改多条])是否新增: 根据条件匹配不到数据时是否插入该条数据 true为插入 false为不插入(默认)是否修改多条: 将匹配成功的数据都修改 true 是 false 否(默认)
- 升级语法
javascript db.集合名.update(条件,{修改器:{键:值}})
| 修改器 | 作用 | | ———- | ———— | | $inc | 递增 | | $rename | 重命名列 | | $set | 修改列值 | | $unset | 删除列 |
- 准备工作
javascript for(var i = 1; i <= 10; i++) { db.c2.insert({uname: "zs"+i, age: i}) } 在test2数据库的c2集合中插入10条数据
- 练习1:将{uname: zs1}改为{uname: zs2}
db.c2.update({uname: "zs2"}, {$set: {uname: "zs22"} })
- 练习2:将{uname: zs10}的年龄增加两岁或者减小两岁
db.c2.update({uname: "zs10"}, {$inc: {age: 2} }) 增加两岁db.c2.update({uname: "zs10"}, {$inc: {age: -2} }) 减小两岁
- 练习3:插入数据: db.c2.insert({uname: “升龙教主”,age: 888, who: “男”, other:“非国人”})
```` db.c2.update({uname: “升龙教主”}, {$set: {uname: “升龙大教主”} }) 修改uname的值 db.c2.update({uname: “升龙大教主”}, {$rename: {who: “sex”} }) 修改who字段的字段名 db.c2.update({uname: “升龙大教主”}, {$inc: {age: 111} }) age字段的值增加111 db.c2.update({uname: “升龙大教主”}, {$unset: {other: true} }) 删除other字段
// 一次性写多个修改器db.c2.update({uname: "升龙大教主"}, { $set: {uname: "升龙大教主"}, $rename: {who: "sex"}, $inc: {age: 111}, $unset: {other: true}}
``
查询文档
db.集合名.find(条件[,查询的字段])// 1.条件: 查询所有的数据 ---> {}或者不写 查询 age=6 的数据 ---> {age: 6} 查询age=6 同时 sex = "男"的数据 ---> {age: 6, sex: "男"} 2.查询的字段(可选参数) 不写 ---> 查询符合条件数据的所有字段 {age: 1} ---> 只显示符合条件数据的age字段 {age: 0} ---> 不显示符合条件数据的age字段(其他字段都显示) 但是不管怎么写 系统自定义的_id都会显示
| 条件 | 含义 | | :—- | :——————- | | $gt | 大于 | | $lt | 小于 | | $gte | 大于等于 | | $lte | 小于等于 | | $ne | 不等于 | | $in | 包含(查询多个) | | $nin | 不包含 |
- 练习1:查询所有的数据
db.c1.find({})
- 练习2:查询年龄大于5岁的数据
db.c1.find({age: {$gt: 5} })
- 练习3:查询年龄是5岁、8岁、10岁的数据
db.c1.find({age: {$in: [5, 8, 10]} })
- 练习4:只看年龄列(_id不考虑)
db.c1.find({},{age:1})
今天的介绍就这么多,如果需要更多课程,欢迎移步我们官网看看,上面有很多免费在线课程资源,各个方向的都有哦。