MongoDB 常用命令總結(jié)
1. 創(chuàng)建自定義數(shù)據(jù)庫(kù)
use databaseName
如果 databaseName 數(shù)據(jù)庫(kù)不存在, 新建數(shù)據(jù)庫(kù)。如果存在镊叁,則連接該數(shù)據(jù)庫(kù)俺祠。
2. 查看數(shù)據(jù)庫(kù)列表
show dbs
# 自帶數(shù)據(jù)庫(kù)
admin 0.000GB
config 0.000GB
local 0.000GB
如果數(shù)據(jù)庫(kù)中沒(méi)有內(nèi)容潘懊,則不會(huì)顯示該數(shù)據(jù)庫(kù)线婚。
3. 統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息
db.stats()
# 選擇 test 數(shù)據(jù)庫(kù)
use test
# 統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息
db.stats()
{
"db" : "test", # 系統(tǒng)自帶測(cè)試數(shù)據(jù)庫(kù)
"collections" : 0, # 集合數(shù)量
"views" : 0, #
"objects" : 0, # 文檔對(duì)象的個(gè)數(shù), 所有集合的記錄數(shù)之和
"avgObjSize" : 0, # 平均每個(gè)對(duì)象的大小, 通過(guò) dataSize / Objects 得到
"dataSize" : 0, # 當(dāng)前庫(kù)所有集合的數(shù)據(jù)大小
"storageSize" : 0, # 磁盤存儲(chǔ)大小
"numExtents" : 0, # 所有集合的擴(kuò)展數(shù)據(jù)量統(tǒng)計(jì)數(shù)
"indexes" : 0, # 已建立索引數(shù)量
"indexSize" : 0, # 索引大小
"fileSize" : 0, #
"fsUsedSize" : 0, #
"fsTotalSize" : 0, #
"ok" : 1
}
4. 刪除數(shù)據(jù)庫(kù)
db.dropDatabase()
db.dropDatabase() # 執(zhí)行刪除
{ "ok" : 1 } # 返回
生產(chǎn)環(huán)境下,不能隨便使用該命令。一旦執(zhí)行弦蹂,一般情況下具有不可恢復(fù)性肩碟。
5. 查看當(dāng)前數(shù)據(jù)庫(kù)下的集合名稱列表
db.getCollectionNames()
db.getCollectionNames()
[ ]
6. 查看數(shù)據(jù)庫(kù)用戶角色權(quán)限
show roles
# 顯示 test 數(shù)據(jù)庫(kù)的所有角色權(quán)限
show roles
{
"role" : "dbAdmin", # 數(shù)據(jù)庫(kù)管理角色, 執(zhí)行數(shù)據(jù)庫(kù)管理相關(guān)操作功能
"db" : "test",
"isBuiltin" : true, # 內(nèi)置角色
"roles" : [ ], # 放置用戶角色、權(quán)限等信息
"inheritedRoles" : [ ]
}
{
"role" : "dbOwner", # 提供數(shù)據(jù)庫(kù)任何管理操作功能, 此角色\
# 集合了 readWrite, dbAdminhe userAdmin
# 角色賦予的權(quán)限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "enableSharding", # 提供分片操作權(quán)限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "read", # 主要提供自定義業(yè)務(wù)數(shù)據(jù)庫(kù)讀權(quán)限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "readWrite", # 主要提供自定義業(yè)務(wù)數(shù)據(jù)庫(kù)讀寫權(quán)限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "userAdmin", # 提供在當(dāng)前數(shù)據(jù)庫(kù)上創(chuàng)建和修改角色和用戶的功能凸椿。
# 由于該角色允許操作員向任何用戶授予任何權(quán)限削祈,
# 該角色還間接地提供對(duì)數(shù)據(jù)庫(kù)的超級(jí)用戶(root)
# 的訪問(wèn)權(quán)限。
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
實(shí)際生產(chǎn)環(huán)境下削饵,執(zhí)行 show roles 命令岩瘦,獲得的信息會(huì)有所變化未巫。
7. 創(chuàng)建集合 (插入多條見說(shuō)明)
db.tableName.insert()
# 如果集合存在, 插入文檔窿撬。如果不存在,創(chuàng)建集合并插入文檔
db.collectionName.insert(
{
name: "Mr.Z",
age: 12
}
)
# 插入成功提示
WriteResult({ "nInserted" : 1 })
如果集合存在, 插入文檔叙凡。如果不存在劈伴,創(chuàng)建集合并插入文檔
插入多條文檔
db.collectionName.insert(
? [
? {
? item: "item_1",
? price: 12
? },
? {
? item: "item_2",
? price: 15
? }
? ]
)
8. 顯示集合內(nèi)容
db.collectionName.find()
db.collectionName.find()
{
"_id" : ObjectId("5ba121d82288bab8681b83c5"),
"name" : "Mr.Z",
"age" : 12
}
insert 命令,自動(dòng)產(chǎn)生一個(gè) _id 值握爷。
insert 命令可以用 save 命令代替跛璧。若給 save 命令指定 _id 值,則會(huì)更新默認(rèn)的 _id 值新啼,如
db.collectionName.save(
? {
? _id: 1000,
? isOk: "OK"
? }
)追城。
9. 刪除集合內(nèi)容
db.collectionName.remove()
# 按條件刪除
db.collectionName.remove({
"name": "zs"
})
10. 查看數(shù)量
db.collectionName.find().count()