mongodb添加用户
只在admin数据库可用
db.createUser(
… {
… user: “admin”,
… pwd: “###”,
… roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
… }
… )
只在admin数据库可用
db.createUser(
… {
… user: “root”,
… pwd: “####”,
… roles: [ { role: “root”, db: “admin” } ]
… }
… )
#读写帐号
db.createUser(
… {
… user: “eam”,
… pwd: “#####”,
… roles: [{ role: “dbOwner”, db: “eamdb” } ]
… }
… )
db.createUser(
… {
… user: “eamtest”,
… pwd: “#####”,
… roles: [{ role: “dbOwner”, db: “eamtestdb” } ]
… }
… )
删除用户
db.dropUser(“eam”)
db.dropUser(“root”)
进入该数据库下的用户
show users
修改用户密码
db.changeUserPassword(“要修改密码的用户名”,”新密码”)
修改用户角色(有问题)
db.updateUser( “test1”,
{
roles:[
{role:“read”,db:“admin”}
] ,
pwd:“test1password”
}
)
用户角色
数据库用户角色
read:允许用户读取指定的数据库
readWrite:允许用户读写指定数据库
数据库管理角色
dbAdmin:允许用户在指定数据库执行管理函数,创建索引,删除索引,查看统计.
userAdmin:允许用户向system.users集合写入,可以在指定数据库创建删除管理账号
dbOwner:指定数据库最大的权限,是readWrite+dbAdmin+userAdmin的和。
群集管理角色(只在admin数据库可用)
clusterAdmin:用户所有分片和复制集相关函数的管理权限
clusterManager:管理和监控群集。
clusterMonitor:只能访问监控工具。
hostManager:监视和管理。
备份和还原角色
backup
restore
所有角色(只在admin数据库可用)
readAnyDatabase:赋予用户所有数据库的读权限
readWriteAnyDatabase:赋予用户所有数据库的读写权限
userAdminAnyDatabase:赋予所有数据库的useradmin权限
dbAdminAnyDatabase:赋予所有数据库的dbadmin权限。
超级角色(只在admin可用)
root:超级账号,超级权限
############
创建数据库
use eamdb
switched to db eamdb
show tables
show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
runoob 0.000GB
db
eamdb
db.eamdb.insert({“name”:“菜鸟教程”})
WriteResult({ “nInserted” : 1 })
show dbs
admin 0.000GB
config 0.000GB
eamdb 0.000GB
local 0.000GB
runoob 0.000GB
每个数据库单独的用户体系
db.auth(“admin”,"###")
db.auth(“eam”,"###")
配置文件
db.eamdb.insert({“a”:1,“b”:2})
dbpath=/home/mongodb3/data
logpath=/var/log/mongodb/mongodb.log
pidfilepath=/var/log/mongodb/master.pid
directoryperdb=true
logappend=true
bind_ip=127.0.0.1
port=27017
fork=true
dbpath=/home/mongodb3/data
#数据库日志存放目录
logpath=/home/mongodb3/logs/mongodb.log
#以追加的方式记录日志
logappend=true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true
#关闭http接口,默认关闭http端口访问
nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip=127.0.0.1
#启用日志文件,默认启用
journal=true
绑定其他地址可以访问,否则外网无法访问
bind_ip=localhost,172.XXX.XXX.XXX
根据配置文件启动
./mongod -f /home/mongodb3/mongodb.conf
关闭服务
./mongod --shutdown --dbpath /home/mongodb3/data
更改端口以后,mongo需要调整连接
./mongo 127.0.0.1:27117/eamdb
./mongo 127.0.0.1:27117/admin
切换admin账号:use admin
使用关闭方法:db.shutdownServer()
关闭服务
1、Crtl+C 关闭或关闭命令窗口
2、数据库命令关闭先登录数据库:mongo
切换admin账号:use admin
使用关闭方法:db.shutdownServer()
3、使用 mongod 命令关闭bin目录下执行,下面接的是数据目录
./mongod --shutdown --dbpath=/usr/mongodb/mongodb/data/db
4、kill掉进程,不安全的关闭方式
查看进程:ps -ef|grep mongo
kill -9 2728
##############用户登入
需要用户才能登入
./mongod -f /home/mongodb3/mongodb.conf --auth
登入操作页面
./mongo 127.0.0.1:27117/eamdb
./mongo 127.0.0.1:27117/admin
db.auth(“eam”,"###")
db.auth(“admin”,"###")
./mongo -u eam -p ###127.0.0.1:27117/eamdb
#################操作
创建数据库
use plan
show dbs
show tables
删除数据库
新增集合
db.createCollection(“plan”) # 先创建集合,类似数据库中的表
db.createCollection(“testtable”)
删除集合
db.eamdb.drop()
db.mongoTest.drop()
插入文档
db.testtable.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
})
db.testtable.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 200
})
查看已经插入的文档
db.mongoTest.find()
db.planEntity.find().pretty()
db.testtable.find()
pretty() 方法以格式化的方式来显示所有文档
db.testtable.find().pretty()
findOne() 方法,它只返回一个文档。
db.testtable.findOne()
更新文档
db.testtable.update({‘title’:‘MongoDB 教程’},{$set:{‘title’:‘MongoDB’}})
删除文档
db.testtable.remove({‘title’:‘MongoDB 教程’})
查询
db.testtable.find({“by”:“菜鸟教程”}).pretty()
and 语句
db.testtable.find({“by”:“菜鸟教程”, “title”:“MongoDB 教程”}).pretty()
OR 条件
db.testtable.find({$or:[{“by”:“菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty()
db.col.find({likes : {$gt : 100}})
=
db.col.find({likes : {$gte : 100}})
<
db.col.find({likes : {$lt : 150}})
<=
db.col.find({likes : {$lte : 150}})
区间
db.col.find({likes : {$lt :200, $gt : 100}})
、
如果想获取 “col” 集合中 title 为 String 的数据,你可以使用以下命令:
db.col.find({“title” : {$type : ‘string’}})
limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
skip方法同样接受一个数字参数作为跳过的记录条数。
db.col.find({},{“title”:1,_id:0}).limit(1).skip(1)
sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
db.col.find({},{“title”:1,_id:0}).sort({“likes”:-1})
语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。
db.col.createIndex({“title”:1})