mongo数据库命令

mongo数据库学习笔记(1)

命令

  • 查看当前数据库:db
  • 查看所有数据库:show dbs/show databases
  • 切换数据库:use db_name
  • 删除当前的数据库:db.dropDatabase()
  • 当想不存在的集合中插入数据,集合会被创建出来
  • db.createCollection(“名字”)
  • db.createCollection(“sub”,{capped:true,size:10})
    • 参数capped:默认值false指不设置上限,无需指定size个数

增删改查操作

  • 查看集合数据
    • db.集合.find()
      db为当前所在数据库
  • 增加数据
    • 当传递_id时,即为指定id,当不传递时创建一个唯一的id
    • db.集合.insert({})插入数据,当插入的数据对应的id在集合中存在,就会报错
    • db.集合.save({})插入数据,当插入的数据对应的id存在时,则会更新新的数据库
  • 更新数据库(改)
    • db.集合名.update({需要更新的原数据条件},{新的数据对})
      • 此方式会将对应条件的数据内容全部更新为新的数据对,会删除不需要更新的数据对
    • db.集合名.update({需要更新的原数据条件},{$set:{新的数据对}})
      • 只会将对应条件的数据更新成新的数据
    • db.集合名.update({需要更新的原数据条件},{$set:{新的数据对}},{multi:true})
      • true:代表更新满足对应条件的所有数据
    • 注:multi只能与$一起用
  • 删除
    • bd.集合.remove({数据条件},{justone:true})
      • true代表仅仅删除一条,默认为全部删除

高级用法

  • 查询

    • db.集合.find({对应的条件})# 查询所有满足条件的数据
    • db.集合.findOne({对应的条件})# 查询后,返回第一个
    • db.集合.find({对应的条件}).pretty()# 查询后美化格式
  • 比较运算符

    • 小于:$lt
    • 小于等于:$lte
    • 大于:$gt
    • 大于等于:$gte
    • 不等于:$ne

    例如 db.集合.find({age:{$gte:18}})

    • 范围:$in

    判断在18,28,38之间的一个db.集合.find({age:{$in:[18,28,38]}})

  • 逻辑运算符

    • and:直接在{}中添加
    • or:$or `db.集合.find({$or:[{age}]})
  • 可适用正则

  • limit和skip

    • limit:用于指定前多少个的数据
      • db.集合.find().limit(2)# 查询前两个数据
    • skip:用于跳过指定数量的文档
      • db.集合.find().skip(2)# 从第三个开始查询
    • 同时使用:更快,可进行翻页
      • db.集合.find().skip(5).limit(4)
  • 投影:对于返回的数据,只选择必要的字段

    • db.集合.find({条件},{字段名称})
      • 解释:对于字段名称,1为显示,0为不显示,_id默认显示的,手动设置为0则不显示。对应的条件为空则查询所有需要的字段,默认为空。
  • 排序

    • 方法sort():参数为1升序,参数为-1降序
      • `db.集合.find().sort({对于的字段:1或-1})
  • 统计

    • count方法:`db.集合.find({条件}).count()
    • 或者:db.集合.count({条件})
  • 去重

    • db.集合.distinct("字段",{需要筛选的条件})
  • 数据的备份和恢复

    • 备份:mongodump -h dbhost -d dbname -o dbdirectory
      • 解释:-h:是服务器地址和端口号 -d:备份的数据库名称 -o:备份存放的位置
      • 注:备份本地时,-h,-d可省略
    • 恢复:mongorestore -h dbhost -d dbname --dir dbdirextory
      • 解释:-h:服务器地址 -d:需要恢复在那个数据库 --dir:备份数据的位置
  • 聚合 aggregate

    • db.集合名称.aggregate({管道:{表达式}})
    • 常用管道
      • $group:将集合中的文档分组,可用于统计结果
      • $match:过滤数据,输出符合条件的文档
      • $project:修改输入文档的结构,可对上一个管道进行重命名、可选显示
      • $sort:将管道文档排序后输出
      • $limit:限制聚合后返回的文档数
      • $skip:跳过指定数量的文档,返回余下的文档
      • $unwind:将数组类型的字段进行拆分
    • 表达式
      • $sum:求和,当:1时则代表一个单位计数
      • $avg:计算平均数
      • $min:计算最小值
      • $max:计算最大值
      • $push:在结果文档中插入到一个数组中
      • $first:根据资源文档的排序获取第一个文档数据
      • $last:根据资源文档的排序获取最后一个文档数据
如有不对地方,欢迎指教,不喜勿喷。搬运请注明出处!!!!
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值