Mongodb初探

下載
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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章