您的位置:首页 > 数据库 > Mongodb

MongoDB简单了解(转载)

2016-03-30 11:09 357 查看

资源来自互联网,版权归作者所有


下载

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.3.tg 解压后修改名称
tar xvzf mongodb-linux-x86_64-rhel62-3.2.3.tg
mv mongodb-linux-x86_64-rhel62-3.2.3.tg mongodb
mv mongodb /usr/local/

mkdir /data/db

./mongod
#启动安全模式
#./mongod --auth >> mongodb.log &
启动shell
./mongo

简单插入:
> db.test.insert({"name":"cctv","time":"1952"})
WriteResult({ "nInserted" : 1 })
查找
> db.test.find()
{ "_id" : ObjectId("56c812e8c3173d7c3942bf94"), "type" : "Fuck" }
{ "_id" : ObjectId("56c81e9a2b323f6d772f237b"), "name" : "cctv", "time" : "1952" }
更新 update方法的第一个参数为“查找的条件”,第二个参数为“更新的值”
>db.test.update({"name":"cctv"},{"name":"China-CNTV"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
删除
remove中如果不带参数将删除所有数据,呵呵,很危险的操作,在mongodb中是一个不可撤回的操作,三思而后行
> db.test.remove({"name":"China-CNTV"})
WriteResult({ "nRemoved" : 2 })
> db.test.find()
{ "_id" : ObjectId("56c812e8c3173d7c3942bf94"), "type" : "Fuck" }
>

启用认证

mongod 启动默认没有开启权限,你需要指定 –auth 启动,或者在配置文件中设置security.authorization 为 “enabled”
创建用户

db.createUser(user, writeConcern)

文档 http://docs.mongodb.org/manual/reference/method/db.createUser/#db.createUser
user格式

{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}

writeConcern:

例如 {w: “majority”, j: true, wtimeout: 5000}

w选项:允许的值分别是 1、0、大于1的值、”majority”、;
j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。
wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

Built-In Roles(内置角色):

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system

creatUser例子

创建超级管理员

use admin
db.createUser({
user:"username",
pwd:"password",
roles:["root"]
})

在products数据库创建accountAdmin01用户,拥有readWrite权限,对admin数据库拥有clusterAdmin跟readAnyDatabase权限

use products
db.createUser( { "user" : "accountAdmin01",
"pwd": "cleartext password",
"customData" : { employeeId: 12345 },
"roles" : [ { role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
] },
{ w: "majority" , wtimeout: 5000 } )

登录

use collectionName
db.auth("username",'password")

查看用户

show users

删除用户

db.dropUser("username")

更改用户密码

db.changeUserPassword("username","password")

更新用户

db.createUser(user, writeConcern)

新建或者切换数据库
use dbname

切换到admin

use admin
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: