關于數(shù)據(jù)庫的基本命令
- 查看當前所在數(shù)據(jù)庫: db
- 查看所有數(shù)據(jù)庫: show dbs
- 切換和創(chuàng)建數(shù)據(jù)庫: use + 數(shù)據(jù)庫名
- 刪除數(shù)據(jù)庫(要切換到目標數(shù)據(jù)庫): db drop Database()
- 查看數(shù)據(jù)庫信息: db.stats()
創(chuàng)建數(shù)據(jù)集合:
非固定大小集合: db.createCollection('集合名稱')
固定大小集合(當集合存滿時新的數(shù)據(jù)會覆蓋之前的數(shù)據(jù)):
db.createCollection('集合名稱',{capped:true,size:指定集合大小(單位字節(jié)),max:指定集合中能存儲的最大文檔的數(shù)量})
size的優(yōu)先級更高查看集合: show collections
刪除集合: db.集合名稱.drop()
關于增刪改查的操作:
插入數(shù)據(jù):db.集合名稱.insert({'key':'value'})
插入多條:db.集合名稱.insert([{'key':'value'},{'key':'value'}])
插入數(shù)據(jù)時如果沒有指定_id會幫你自動生成一個,也可以自己指定,_id是主鍵也是一個索引
更新數(shù)據(jù)
全文檔更新(由一個新的文檔替換之前的文檔,id不變)db.集合名稱.update({'key':'value'}查詢條件,{'newkey':'newvalue'}新文檔,{upsert:默認情況下為false,要更新的文檔不存在,不會插入一條新數(shù)據(jù)為true相反
- multi:默認為false,只跟新查找到的第一條,為true表示更新所有})
局部更新: db.集合名稱.update({'key':'value'}查詢條件,{$set:{'key':'newvalue'}})
save:會根據(jù)_id這個字段去集合下查找,如果_id存在,ze進行全文檔更新,如果不存在,則插入一條新數(shù)據(jù)
db.集合名稱.save({id:'','key':'value',...})
格式化輸出
- db.集合名稱.find().pretty()
刪除數(shù)據(jù)
- 刪除多條:db.集合名稱.remove({'key':'value'}條件)
- 刪除單條: db.集合名稱.remove({'key':'value'}條件,1表示true)
查詢數(shù)據(jù)
- 查詢所有 : db.集合名稱.find()
- db.集合名稱.find({'key':'value'}條件)
- db.集合名稱.findOne({'key':'value'}條件
比較運算符
默認等于
小于:
gt
小于等于:gte
不等于:$ne
db.集合名稱.find({time:{$gte:100}})
多條件查詢
- db.集合名稱.find({time:{$gt:100},actor:'李連杰'})
邏輯或$or
- db.集合名稱.find({
gt:100}},{actor:'李連杰'}]})
邏輯或$or和and同時使用
- db.集合名稱.find({
gt:100}},{actor:'李連杰'}],title:'少林寺'})
范圍運算符 in:[100,120]}})
nin:[100,120]}})
使用正則查找李字開頭的數(shù)據(jù)
db.集合名稱.find({actor:/^李/})
db.集合名稱.find({actor:{$regex:'^李'}})
type:'數(shù)據(jù)類型'}})
limit:限制返回
skip:跳過
db.集合名稱.find().limit(num).skip(num)
limit和skip先后順序不影響結果
sort:進行排序 1:升序 -1:降序
db.集合名稱.find().sort({key:方向(1 or -1)})
distinct:去重
db.集合名稱.distinct('去重字段',{'條件'})
project投影:可以選擇查詢結果中,數(shù)據(jù)的顯示和隱藏 0 隱藏 1 顯示
db.集合名稱.find({'條件'},{key:1})
加入在設置要顯示的字段時,第一個字段設置為1,只顯示這一個其他都不顯示,反之,只隱藏
count:統(tǒng)計文檔個數(shù)
db.集合名稱.count({條件})
db.集合名稱.find({條件}).count()
MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計平均值,求和等),并返回計算后的數(shù)據(jù)結果。