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:\MongoDB\mglog\mongo.log --logappend --dbpath E:\MongoDB\mgdata --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:\MongoDB\bak

 

 mongodump  备份全部

 

--恢复:

mongorestore -h 127.0.0.1:27017 -d CacheData --dir E:\MongoDB\mgbak\CacheData

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

posted @ 2019-04-25 16:37  耿中伟  阅读(740)  评论(0编辑  收藏  举报