zoukankan      html  css  js  c++  java
  • MongoDB 命令

    1. mongodb服务端启动
     sudo mongod --auth # 以权限认证的方式启动
              --fork # 后台运行
              --logpath= # 指定日志文件路径
              --logappend # 声明日志以追加方式写入
              --dbpath= # 指定数据库文件夹所在路径
     
    2. 进入mongo shell:mongo
     
    3. 超级管理员账号的创建
    a. use admin
     b .db.createUser({"user":"python","pwd":"python","roles":["root"]})
     c. 以权限认证的方式重启mongod服务
     d. use admin
     e. db.auth('账号', '密码')
     
    4. 普通用户创建
     在admin库中执行
      use admin
      db.createUser({"user":"python1", "pwd":"python1", roles:[{"role":"read","db":"dbname1"},{"role":"readWrite","db":"dbname2"}]})
     
    5. 查看用户 show users
     
    6. 删除用户 db.dropUser('账号')
     
    7. mongodb的命令
     show dbs
     use 数据库名
     db # 查看当前数据库
     db.dropDatabase() 
     show collections # 查看当前数据库中集合
     db.集合名称.drop() # 删除集合
     
    8. 增删改
     db.集合名称.insert(document)
     db.集合名称.save(document)
      # 根据数据中的_id,存在就更新,不存在就insert
     db.集合名称.update({条件}}, {$set:{指定更新的kv}}, {multi:false/true})
      # multi参数默认false,true表示更新全部
     db.集合名称.remove({条件}, {justOne: false/true})
      # justOne默认是false,true表示删除一条
     
    9. 查
     a. db.集合名.find({条件}).pretty()
     b. db.stu.find({age:{$gte:18}}) # $lte $ne 
     c. db.stu.find({$or:[{age:{$gte:18}},{gender:true}],name:'gj'})
     d. db.stu.find({age:{$in:[18,28,38]}}) # $nin
     e. db.stu.find({name:{$regex:'靖$'}})
     f. db.stu.find().skip(1).limit(1)
     g. db.stu.find({},{_id:0,name:1,gender:1})
     h. db.stu.find().sort({gender:-1,age:1})
     i. db.stu.find().count()
     
     
    10. 聚合操作
     a. $group
      db.集合名.aggregate(
       {$group: 
        {
         _id:'$k', # _id: null
         k2: {$sum:1},
         k3: {$push:'$$ROOT'} # 把整个数据放到k3中
        }
       }
      )
     
     db.stu.aggregate(
      {
       $group:{
        _id:{
         hometown1:'$hometown',
         age1:'$age',
         name1:'$name'
        }
       }
      }
     )
     
     b. $match
      db.stu.aggregate(
         {$match:{age:{$gt:20}}},
         {$group:{_id:"$gender",counter:{$sum:1}}}
      )
     
       c. $project
      db.stu.aggregate(
       {$group:{_id:"$gender",counter:{$sum:1}}},
       {$project:{_id:0,counter:1}}
      )
     
     d. db.stu.aggregate(
         {$group:{_id:'$gender', count:{$sum:1}}},
         {$sort:{count:1}},
         {$skip:1},
         {$limit:1}
     ) # 先skip,再limit!
     
    11. 索引
     索引的作用:
      提高查询速度
      对数据做去重
     创建索引
     db.集合名.ensureIndex({k1:1,k2:-1}, {"unique":true})
      # 普通索引:{k1:1升序/-1降序}
      # 联合索引:{k1:1,k2:-1}
      # 唯一索引:{"unique":true}
     查看索引
     db.集合名.getIndexes()
     删除索引
     db.集合名.dropIndex({k1:1})
     
     # 注意
      # 提高查询建立索引的字段的速度
      # 尤其是联合索引,会降低写入速度,这也是读写分离的原理
     
     
    12. 备份恢复、导出导入
     备份
      mongodump -h ip:port -d 数据库 -o 数据库文件夹位
     恢复
      mongorestore -h ip:port -d 数据库 --dir=备份的数据库文件的位置
     导出
      mongoexport -h ip:port -d 数据库 -c 集合名 -o 导出的文件完整路径
     导入
      mongoimport -h ip:port -d 数据库 -c 集合名 --file=导出文件的完整路径
  • 相关阅读:
    MongoDB一次节点宕机引发的思考(源码剖析)【华为云分享】
    JavaScript基础修炼(14)——WebRTC在浏览器中如何获得指定格式的PCM数据【华为云分享】
    如何通过虚拟私有云保障服务安全【华为云分享】
    网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
    化鲲为鹏,我有话说:鲲鹏服务器开通流程以及注意事项【华为云分享】
    hadoop小知识札记
    抽取网页中的主要内容
    Hadoop Bloom Filter 使用
    Bloom filter 2
    Bloom Filter
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166680.html
Copyright © 2011-2022 走看看