8天學通MongoDB——次日 細說增刪查改

      看過上一篇,相信你們都會知道如何開啓mongodb了,這篇就細說下其中的增刪查改,首先當咱們用上一篇一樣的方式打開mongodb,忽然javascript

傻眼了,擦,居然開啓不了,仔細觀察「劃線區域「的信息,發現db文件夾下有一個相似的」lock file」阻止了mongodb的開啓,接下來咱們要作的就java

是幹掉它,以後,開啓成功,關於mongodb的管理方式將在後續文章分享。正則表達式

 

一: Insert操做sql

     上一篇也說過,文檔是採用「K-V」格式存儲的,若是你們對JSON比較熟悉的話,我相信學mongodb是手到擒來,咱們知道JSON裏面Valuemongodb

多是「字符串」,多是「數組」,又有多是內嵌的一個JSON對象,相同的方式也適合於BSON。shell

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

   

    ①  單條插入數組

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

    

   ② 批量插入對象

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

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

 

二:Find操做

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

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

     ②:And,OR,In,NotIn

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

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

   

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

 

  

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

 

<4> 有時查詢很複雜,很蛋疼,不過不要緊,mongodb給咱們祭出了大招,它就是$where,爲何這麼說,是由於$where中的value

  就是咱們很是熟悉,很是熱愛的js來助咱們一馬平川。

 

三: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便可。例子就不舉了。

 

四: Remove操做

      這個操做在上一篇簡單的說過,這裏就不贅述了。

相關文章
相關標籤/搜索