MongoDB 基礎手冊(一)


作者:雲懷大師兄

部落格園://www.cnblogs.com/yunhuai/

公眾號:雲懷大師兄

與Mysql概念對比

說明 MySQL MongoDB
資料庫 DatatBase DataBase
數據表/集合 Table Collection
數據行/文檔 Row Document
欄位/域 Column field
索引 Index Index
表連接 Join 不支援,使用內嵌文檔
主鍵 Primary Key Primary Key自動將_id設為主鍵
服務端 mysqld mongod
客戶端 mysql mongo

數據類型

類型 說明
String 字元串,utf-8才是合法字元
Integer 根據伺服器而不同,分32位、64位
Boolean 布爾值
Double 如果是數值,默認Double類型
Array 數組
TimeStamp 時間戳
Object 主要用於內嵌文檔
Null 用於創造空值
Symbol 特殊符號
Date 日期時間
Min/Max key 將一個元素與Bson的最低值和最高值對比

用戶管理

常用許可權

許可權 說明
read 允許讀取(系統級別的集合等不能讀取)
readAnyDatabase 只在admin資料庫中可用,賦予用戶所有資料庫的讀取許可權
readWrite 允許讀寫
readWriteAnyDatabase 只在admin資料庫中可用,賦予用戶所有資料庫的讀寫許可權
dbAdmin 允許用戶在指定資料庫中執行管理函數,如索引的創建刪除,統計,訪問system.profile
dbAdminAnyDatabase 只在admin資料庫中可用,賦予用戶所有資料庫的相應dbAdmin許可權
userAdmin 可以管理用戶(system.users)
userAdminAnyDatabase 只在admin資料庫中可用,賦予用戶所有資料庫的相應userAdmin許可權
ClusterAdmin 只在admin資料庫中可用,賦予用戶所有分片和複製集相關函數的管理許可權
root 只在admin資料庫可用,超級管理員帳號

創建用戶

新增一個帳號(user)為root,密碼(pwd)為root,許可權集合(roles)為:在資料庫(db)為admin的庫中,賦予其root的許可權(role),並為此帳號添加相關說明

db.createUser({"user":"root","pwd":"root",roles:[{"role":"root","db":"admin"}],"customData":{"infomation":"First MongoDB User"}})

修改用戶

db.updateUser("用戶名",{"pwd":"123","roles":["role":"readWriteAnyDatabase","db":"admin"]})

修改用戶密碼

db.changeUserPassword(""用戶名,"新密碼")

刪除用戶

需要許可權:userAdmin

db.dropUser("用戶名")

資料庫管理

查看

show dbs

show databases

創建

use 庫名,自動創建,邏輯創建,記憶體中創建,插入數據後寫入硬碟

刪除

進哪個庫刪哪個庫

db.dropDatabase()

集合管理(Collection)

創建

db.createCollection('集合名')

向一個不存在的集合插入數據,也可創建,且效果與上一模一樣

db.集合名.insert(插入的數據的json)

集合約束

db.createCollection('集合名',{'capped':true,'size':2000,'max':100,'autoIndexId':true})
key 含義
cappend 默認false 容量無限制,如果為true,就說明有限制,那麼size 必須有
size 指定大小(位元組),會根據設置的自動找最近的2的整數次冪或者2的整數次冪的和,比如寫1000會自動變為1024,寫500變為512 ,700變為 512+256=768
max 最大個數,新增時先檢查容量,再檢查個數
autoIndexId 自動主鍵創建索引,已過期,MongoDB後續會刪除

查詢

show tables
或
show collections

查看集合詳情:db.集合名.stats()

刪除

db.集合名.drop()

Tags: