MongoDB基本操做(增刪改查)

基本操做javascript

     基本的「增刪查改「,在DOS環境下輸入mongo命令打開shell,其實這個shell就是mongodb的客戶端,同時也是一個js的編譯器默認鏈接的是「test」數據庫java

 

 

【出錯】正則表達式

  首先當咱們用一樣的方式打開mongodb,居然開啓不了,仔細觀察「劃線區域「的信息,發現db文件夾下有一個相似的」lock file」阻止了mongodb的開啓,接下來咱們要作的就是幹掉它,以後,開啓成功。sql

<1> insert 操做mongodb

數據庫有了,下一步就是集合,這裏就取集合名爲「person」,要注意的就是文檔是一個json的擴展(Bson)形式。shell

注意:書寫格式爲外面是(),裏面的書{}。 數據庫

 

文檔是採用「K-V」格式存儲的,若是你們對JSON比較熟悉的話,我相信學mongodb是手到擒來,咱們知道JSON裏面Value多是「字符串」,多是「數組」,又有多是內嵌的一個JSON對象,相同的方式也適合於BSON。json

常見的插入操做也就兩種形式存在:「單條插入」和「批量插入」。數組

① 單條插入spa

先前也說了,mongo命令打開的是一個javascript shell。因此js的語法在這裏面都行得通,看起來是否是很牛X。

 

   

② 批量插入

這玩意跟「單條插入」的差別相信你們應該知道,因爲mongodb中沒有提供給shell的「批量插入方法」,不要緊,各個語言的driver都打通

了跟mongodb內部的批量插入方法,由於該方法是不可或缺的,若是你們非要模擬下批量插入的話,能夠本身寫了for循環,裏面就是insert。

   

  <2> find 操做

咱們將數據插入後,確定是要find出來,否則插了也白插,這裏要注意兩點:

① 「_id": 這個字段是數據庫默認給咱們加的GUID,目的就是保證數據的惟一性。

② 嚴格的按照Bson的形式書寫文檔,不過也不要緊,錯誤提示仍是很強大的。

 

 

平常開發中,咱們玩查詢,玩的最多的也就是二類:

①: >, >=, <, <=, !=, =。

②:And,OR,In,NotIn

這些操做在mongodb裏面都封裝好了,下面就一一介紹:

<1>"$gt", "$gte", "$lt", "$lte", "$ne", "沒有特殊關鍵字",這些跟上面是一一對應的,舉幾個例子。

 

<2> "無關鍵字「, "$or", "$in","$nin" 一樣我也是舉幾個例子

 

<3> 在mongodb中還有一個特殊的匹配,那就是「正則表達式」,這玩意威力很強的。

 

<4> 有時查詢很複雜,很蛋疼,不過不要緊,mongodb給咱們祭出了大招,它就是$where,爲何這麼說,是由於$where中的value就是咱們很是熟悉,很是熱愛的js來助咱們一馬平川。

 

 

<3> update操做

          update方法的第一個參數爲「查找的條件」,第二個參數爲「更新的值」。

 

 

更新操做無非也就兩種,總體更新和局部更新,使用場合相信你們也清楚。

<1> 總體更新

不知道你們可還記得,我在上一篇使用update的時候,其實那種update是屬於總體更新。

 

<2> 局部更新

有時候咱們僅僅須要更新一個字段,而不是總體更新,那麼咱們該如何作呢?easy的問題,mongodb中已經給咱們提供了兩個修改器: $inc 和 $set。

① $inc修改器

$inc也就是increase的縮寫,學過sql server 的同窗應該很熟悉,好比咱們作一個在線用戶狀態記錄,每次修改會在原有的基礎上自增$inc指定的值,若是「文檔」中沒有此key,則會建立key,下面的例子一看就懂。

 

② $set修改器

 

<3> upsert操做

這個但是mongodb創造出來的「詞」,你們還記得update方法的第一次參數是「查詢條件」嗎?,那麼這個upsert操做就是說:若是我沒有查到,我就在數據庫裏面新增一條,其實這樣也有好處,就是避免了我在數據庫裏面判斷是update仍是add操做,使用起來很簡單。將update的第三個參數設爲true便可。

 

<4> 批量更新

在mongodb中若是匹配多條,默認的狀況下只更新第一條,那麼若是咱們有需求必須批量更新,那麼在mongodb中實現也是很簡單的,在update的第四個參數中設爲true便可。例子就不舉了。

 

<4> remove操做

remove中若是不帶參數將刪除全部數據,很危險的操做,在mongodb中是一個不可撤回的操做,三思然後行。

相關文章
相關標籤/搜索