use data 創建數據庫
show dbs show databases 顯示所有數據庫
db 顯示當前數據庫
db.dropDatabase() 刪除當前數據庫
創建集合 固定集合大小為100 最大數值1000
db.createCollection('student',{capped:true,size:100,max:1000})
//顯示所有集合
show collections
//刪除集合
db.集合名.drop()
//插入集合 _id存在就報錯
db.runoob.insert({_id:0001,'name':'hw','age':10})
//顯示集合內容
db.runoob.find()
//顯示一條集合內容
db.runoob.findOne()
//格式化顯示集合內容
db.runoob.find().pretty()
//保存集合_id存在就更新
db.runoob.save({_id:0001,'name':'hw','age':10})
//更新集合
$set 指定鍵並更新 不存在則創建 $unset 刪除
db.runoob.update({'name':'hw'},{'name':'xz'}) //更新一條數據替換
db.runoob.update({'name':'hw'},{$set{'name':'xz'}}) //更新一條數據更新
db.runoob.update({'name':'hw'},{'name':'xz'},{multi:true}) //更新全部數據
//刪除集合數據
db.runoob.remove({'name':'hw'},{justOne:true}) //刪除一條數據
db.runoob.remove({'name':'hw'},{justOne:false}) //刪除全部數據
//查詢數據
$lt--小於 $lte--小於等於
$gt--大於 $gte--大於等於
$ne--不等於 $in $nin--是否處在該範圍
$and $or 查詢條件與或
$type
/^abc/ $regex:'abc$' 正則表達式
limit(num) 顯示指定數量的結果
skip(num) 跳過指定數量的結果
$where 查詢函數
_id默認顯示,不顯示則把值設為0
sort() 排序,參數為1升序 -1 降序
count() 統計查詢結果數量 也可把查詢參數放進count中
distinct() 消除重複數據
db.runoob.find({age:{$gte:18}})
db.runoob.find({age:{$in:[12,32,21]}})
db.runoob.find({$and:{age:{$in:[12,32,21]},{age:{$gte:18}}}})
db.runoob.find({age:{$gte:18}}).skip(3).limit(2)
db.runoob.find({age:/^abc/,name:{$regex:'123$'}})
db.runoob.find($where:function(){return this.age<=19})
db.runoob.find({age:{$gte:18}}).sort({age:1})
db.runoob.distinct({age:{$gte:18}})
//備份數據
mongodump -h dbhost -d dbname -o dbdirectory
-h 服務器地址
-d 需要備份的數據庫名稱
-o 備份數據庫存放位置
//數據恢復
mongorestore -h dbhost -d dbname --dir dbdirectory
-h 服務器地址
-d 需要恢復的數據庫實例
--dir 備份數據所在位置
//數據聚合
$group分組 $match過濾數據 $project修改文檔結構
$sort排序 $limit指定數量 $skip 跳過
$unwind 拆分數組類型的字段 $pushAll
$sum 和 $avg 平均值 $push 添加值至數組
$pop $addToSet $pull $rename $bit
$first開頭 $last結尾 $min $max
db.runoob.aggregate({$group:{_id:'$name',count:{$sum:1},avg_age:{$avg:'$age'}}}
,{$project:{name:'$_id',count:'$count',avg_age:'$avg_age'}},
{$match:{age:{$gt:20}}},{$unwind:{'$age',preserveNullAndEmptyArrays:true}} //true保留缺失值
)
//建立唯一值的索引
db.runoob.ensureIndex({name:1},{'unique':true}) //1升序 -1降序
db.runoob.find({name:'he'}).explain('executionStats') //獲取時間
//查看集合中所有索引
db.runoob.getIndexes()
//刪除索引
db.runoob.dropIndex('name')
//監控
Mongostat 檢測數據庫狀態
Mongotop sleeptime - -locks 跟蹤一個MongoDB的實例
閱讀更多 任性的90後boy 的文章