MongoDB 基礎手冊(一)
阿新 • • 發佈:2021-01-12
作者:雲懷大師兄
部落格園:https://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()