1. 程式人生 > 實用技巧 >MongoDB 基礎手冊(一)

MongoDB 基礎手冊(一)


作者:雲懷大師兄

部落格園: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()