zoukankan      html  css  js  c++  java
  • Mongo Windows 基本使用入门

    1.安装
    https://www.mongodb.com/download-center#community
    注意:
    安装 "install mongoDB compass" 不勾选
    下载安装,下载地址:https://www.mongodb.com/download-center/compass
    安装服务:
    mongod --bind_ip 0.0.0.0 --logpath 日志文件 --logappend --dbpath 数据库存储目录 --port 27017 --serviceName "Mongodb" --install
    如:
    mongod --bind_ip 0.0.0.0 --logpath E:MongoDBmglogmongo.log --logappend --dbpath E:MongoDBmgdata --port 27017 --serviceName "Mongodb" --install

    启动MongoDB服务: net start MongoDB

    关闭MongoDB服务: net stop MongoDB

    移除 MongoDB 服务:mongod.exe --remove

     



    2.基本用法
      1.创建数据库
       use cachedb

         db.test.insert({'name':'小花'});
    这样就创建了一个数据库,如果什么都不操作离开的话,这个库就会被系统删除.所以我们还要执行下面的命令:

      然后使用命令查看是否有保存cachedb这个数据库:
    show dbs

    2.配置用户
      use CacheData

    db.createUser(
    {
    user:"dbman",
    pwd:"12345678",
    roles:[{role:"dbAdmin",db:"CacheData"}]
    }
    )

    查看用户是否创建成功:show users

     数据库角色说明:

         1. 数据库用户角色:read、readWrite;
         2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
         3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
         4. 备份恢复角色:backup、restore;
         5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
         6. 超级用户角色:root

    修改密码

    方法1:db.changeUserPassword("dbman","changepass");

    方法2:db.updateUser("dbman",{pwd:"changepass1"});

    MongoDB 创建用户 修改权限 修改密码 删除用户

     删除用户:db.dropUser("dbman") 

    修改权限

    db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})

    注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 

    则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()

    ------------------------------------------------------------------------------------------

    db.grantRolesToUser("usertest", [{role:"readWrite", db:"testDB"},{role:"read", db:"testDB"}])   # 修改权限

    db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}])   # 删除权限:

    MongoDB 创建用户 修改权限 修改密码 删除用户


    3.使用客户端连接
       我使用的是 Robo 3T
           

     

    4.

    --备份

    mongodump -h 127.0.0.1:27017 -d CacheData -o E:MongoDBak

     mongodump  备份全部

    --恢复:

    mongorestore -h 127.0.0.1:27017 -d CacheData --dir E:MongoDBmgbakCacheData

    mongorestore 恢复全部


    解决MongoDB 日志文件过大,清理后还占用很大磁盘空间的问题
    使用如下命令:
    db.runCommand({logRotate:1})
    这个命令会使得mongo关闭当前日志文件
    重启一个新的日志文件
    需要切换到admin数据库
    特别注意:启动的时候必须是--logpath指定了log路径的

    ---------------------------------

    mongod --dbpath 数据库地址  --port 端口号 --logpath 日志地址  --fork 

    mongo进入数据库

    use admin 切换到admin 

    db.createUser({ user:'root', pwd:'root', roles:[{ 'role':'root'  }] })  创建用户

    ps -ef | grep mongo 查看MongoDB的pid

    sudo kill pid 关闭mongo

    mongod --dbpath 数据库地址  --port 端口号 --logpath 日志地址  --fork   --auth  (auth开启认证,端口号不要在用默认端口)

    之后再次进入数据库将无法操作 提示需要认证

    输入db.auth("user","pwd")完成认证即可(切入admin)

    mongodump -h 192.168.1.88 --port 27017 -u root -p 123456

    mongorestore -h 192.168.1.88 --port 27017 -u root -p 123456

    ==========================
    mongodb 日志:

    默认情况下,系统分析器处于关闭状态,不会进行任何记录。可以在shell中运行db.setProfilingLevel()开启分析器

     db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all

    第一个参数是指定级别,不同的级别代表不同的意义,0表示关闭,1表示默认记录耗时大于100毫秒的操作,2表示记录所有操作。第二个参数则是自定义“耗时过长"标准,比如记录所有耗时操作500ms的操作

    db.setProfilingLevel(1,500);
     

    db.setProfilingLevel(0)  

    db.system.profile.drop()  

    db.createCollection( "system.profile", { capped: true, size:4000000 } )  

    db.setProfilingLevel(1)  

      查询执行时间大于200ms的Profile记录:

    > db.system.profile.find( { millis : { $gt : 200 } } )

    分组聚合:
    db.getCollection('LiveDuration').aggregate([{"$match":{"LiveId":36495807}},{$group : {_id : "$UserCenterId", num_tutorial : {$sum : "$Second"}}},{$sort:{num_tutorial:-1}},{$limit:20}])

  • 相关阅读:
    Codeforces 22E(图论)
    Codeforces Educational Round 23
    bzoj1444 有趣的游戏(AC自动机+概率dp)
    AtCoder Grand Contest 012 D Colorful Balls
    计蒜客15430 XOR Queries(Trie处理位运算问题)
    AtCoder Grand Contest 012 B Splatter Painting(记忆化搜索)
    Codeforces 799E(贪心)
    Codeforces Round #414
    Codeforces Educational Round 21
    LOJ10078
  • 原文地址:https://www.cnblogs.com/lhbshg/p/10769305.html
Copyright © 2011-2022 走看看