MongoDB 基本命令

關于數(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'}條件
比較運算符

默認等于

小于:lt 大于:gt
小于等于:lte 大于等于:gte
不等于:$ne

db.集合名稱.find({time:{$gte:100}})

多條件查詢

  • db.集合名稱.find({time:{$gt:100},actor:'李連杰'})

邏輯或$or

  • db.集合名稱.find({or:[{time:{gt:100}},{actor:'李連杰'}]})

邏輯或$or和and同時使用

  • db.集合名稱.find({or:[{time:{gt:100}},{actor:'李連杰'}],title:'少林寺'})

范圍運算符 in:在..范圍 db.集合名稱.find({time:{in:[100,120]}})
nin:不在..范圍 db.集合名稱.find({time:{nin:[100,120]}})

使用正則查找李字開頭的數(shù)據(jù)
  • db.集合名稱.find({actor:/^李/})

  • db.集合名稱.find({actor:{$regex:'^李'}})

type:只返回符合數(shù)據(jù)類型的文檔 db.集合名稱.find({key:{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ù)結果。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 關于Mongodb的全面總結 MongoDB的內(nèi)部構造《MongoDB The Definitive Guide》...
    中v中閱讀 32,273評論 2 89
  • 成功啟動MongoDB后,再打開一個命令行窗口輸入mongo,就可以進行數(shù)據(jù)庫的一些操作。 輸入help可以看到基...
    你本來就很牛閱讀 28,789評論 0 3
  • 一、數(shù)據(jù)庫常用命令1、Help查看命令提示 復制代碼 代碼如下: helpdb.help();db.yourCol...
    字伯約閱讀 432評論 0 0
  • NoSql數(shù)據(jù)庫優(yōu)缺點 在優(yōu)勢方面主要體現(xiàn)在下面幾點: 簡單的擴展 快速的讀寫 低廉的成本 靈活的數(shù)據(jù)模型 在不足...
    dreamer_lk閱讀 2,872評論 0 6
  • 一,提供景區(qū)或民宿酒店等的技術改變與系統(tǒng)提供,為C端日益增長的需求提供各種緯度的體驗 二,互聯(lián)網(wǎng)是信息化,移動互聯(lián)...
    眾心無相閱讀 357評論 0 0

友情鏈接更多精彩內(nèi)容