四时宝库

程序员的知识宝库

「干货」MongoDB基本常用操作命令

查看数据库

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})

今天的介绍就这么多,如果需要更多课程,欢迎移步我们官网看看,上面有很多免费在线课程资源,各个方向的都有哦。

「链接」

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接