程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB綜合知識 >> MongoDB常用命令小結

MongoDB常用命令小結

編輯:MongoDB綜合知識

MongoDB常用命令:

超級用戶相關:

use admin
#增加或修改用戶密碼
db.addUser(ixigua,'pwd')
#查看用戶列表
db.system.users.find()
#用戶認證
db.auth(ixigua,'pwd')
#刪除用戶
db.removeUser('mongodb')
#查看所有用戶
show users
#查看所有數據庫
show dbs
#查看所有的collection
show collections
#查看各collection的狀態
db.printCollectionStats()
#查看主從復制狀態
db.printReplicationInfo()
#修復數據庫
db.repairDatabase()
#設置記錄profiling,0=off 1=slow 2=all
db.setProfilingLevel(1)
#查看profiling
show profile
#拷貝數據庫
db.copyDatabase('mail_addr','mail_addr_tmp')
#刪除collection
db.mail_addr.drop()
#刪除當前的數據庫
db.dropDatabase()


客戶端連接:
/usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'


增刪改:
#存儲嵌套的對象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
#存儲數組對象
db.user_addr.save({'Uid':'[email protected]','Al':['[email protected]','[email protected]']})
#根據query條件修改,如果不存在則插入,允許修改多條記錄
db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
#刪除yy=5的記錄
db.foo.remove({'yy':5})
#刪除所有的記錄
db.foo.remove()


索引:
#增加索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
#索引子對象
db.user_addr.ensureIndex({'Al.Em': 1})
#查看索引信息
db.deliver_status.getIndexes()
db.deliver_status.getIndexKeys()
#根據索引名刪除索引
db.user_addr.dropIndex('Al.Em_1')


查詢:
#查找所有
db.foo.find()
#查找一條記錄
db.foo.findOne()
#根據條件檢索10條記錄
db.foo.find({'msg':'Hello 1'}).limit(10)
#sort排序
db.deliver_status.find({'From':'[email protected]'}).sort({'Dt',-1})
db.deliver_status.find().sort({'Ct':-1}).limit(1)
#count操作
db.user_addr.count()
#distinct操作
db.foo.distinct('msg')
#>操作
db.foo.find({"timestamp": {"$gte" : 2}})
#子對象的查找
db.foo.find({'address.city':'beijing'})


管理:
#查看collection數據的大小
db.deliver_status.dataSize()
#查看colleciont狀態
db.deliver_status.stats()
#查詢所有索引的大小
db.deliver_status.totalIndexSize()
#查看當前所使用的數據庫
db

作者 mahout

以下是其他網友的補充:

庫操作
show dbs 查看系統中的數據庫列表
注:數據庫中必須有內容才會顯示
db = db.getSiblingDB("<數據庫名>")
or
use <數據庫名> 
切換當前數據庫
注:如果數據庫不存在,則創建數據庫
任何一種方法都是可以的,並把db值設置為指定的數據庫,然後可以使用db來管理新的當前數據庫。
 
db.dropDatabase() 刪除當前數據庫
注:刪除當前數據庫,然後在不改變當前數據庫的情況下使用句柄創建一個集合,則被刪的數據庫會被重新創建。
 
db.copyDatabase("<當前數據庫名>", "<備份庫名>", [hostname])
復制數據庫,創建除名稱外一模一樣的數據庫
注:可選的hostname參數指定當前庫MongDB服務器主機名。
 
db 顯示當前數據庫

集合操作
show collections 查看當前數據庫中包含的集合的名單
 
db.createCollection("<集合名>", {<options>}) 創建集合
注:參數二可選對象
屬性          說明
capped         布爾,如果為true,表示該集合是一個封頂集合,它不會增長到比size屬性指定最大規模更大。默認:false
autoIndexID     布爾,如果為true,表明自動為添加到集合的每個文檔創建一個_id字段並實現該字段上索引。這對封頂集合應該是false。默認true
size          字節單位大小,用於封頂集合。最舊的文件被刪除,以騰出空間給新文件
max         在封頂集合中允許的最大文檔數。最舊的文件被刪除,以騰出空間給新文件

db.<集合名>.drop()
or
coll = db.getCollection("<集合名>")
coll.drop() 刪除集合
 
db.<集合名>.find()
or
coll = db.getCollection("<集合名>")
coll.find(query) 在集合中查看文檔
注:可選query參數指定包含字段和值的查詢文檔與集合中的文檔匹配,並返回匹配內容。例:coll.find({speed:"120mph"})
 
db.<集合名>.insert({}) 
or
db.<集合名>.save({})
在集合中插入文檔數據(如果集合不存在會被創建,save也是)
將同類數據視為一個集合
集合中數據具體相似的屬性
集合是一個容器,內部可放置N多數據
可以對這些數據進行篩選、排序
db.<集合名>.remove({篩選條件},false)
從集合中刪除文檔 參數1:篩選條件。參數2:可選參數,是否單行刪除,默認false。
 
db.<集合名>.save({ "_id" : ObjectId("57e26b294a655f35e13d6f5d"), "name" : "hung", "age" : 18})
or
db.<集合名>.update( {篩選條件}, {$set:{"name":"jin","up":true}},
{upsert:true,multi:true}) 更新集合中的文檔
參數一:更新文檔的條件
參數二:更新時使用的更新運算符,以及更新屬性
常用運算符:$inc遞歸該字段值。$set設置字段值。$push將一個條目推送數組。$rename重命名字段。等··
參數三:可選,兩個屬性。multi(匹配到的所有文檔更新,默認false只更新第一條)和upsert(若沒有找到匹配項,創建一個,默認false不創建),布爾。
*******************************************************************
db.<集合名>.pretty() 整齊的顯示查詢文檔
db.<集合名>.find().sort({屬性:1/-1}) 按指定的屬性排序
1是正序,-1:倒序
db.<集合名>.find().limit(n) 顯示前n條數據
db.<集合名>.find().skip(n) 跳過前n條數據
條件查找
db.<集合名>.find({屬性:value}) 屬性==值
db.<集合名>.find({屬性:{運算符:value}})
運算符:
$lt       小於
$lte     小於等於
$gt      大於
$gte    大於等於
$ne     不等於
對同一屬性使用兩個運算符
db.<集合名>.find({ 屬性: { 運算符1:value, 運算符2:value } })
如:db.<集合名>.find({ age: { $gt: 6, $lt: 16 } })
對不同屬性同時限定條件(兩個條件同時成立)
db.<集合名>.find( {屬性1: { 運算符:value }, 屬性2: { 運算符:value }})
或條件
db.<集合名>.find({
$or: [
{屬性: value},
{屬性: value},
{屬性: value}
]
})
使用函數篩選數據
db.<集合名>.find({
$where: function(){
return true/false
}
})

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved