Mongodb(三):Mongodb的增刪改查(1)

來源:互聯網
上載者:User

標籤:style   blog   http   for   sp   資料   2014   on   log   

學Mongodb之前,最好先瞭解一下JSON這種資料格式,Mongodb中的BSON是JSON的一種擴充,和JSON差不多,如果懂JSON的話,學起來會容易很

多,當然JSON也是很容易上手的。

(1):插入(insert)可以有兩種,單個的插入document和批量的插入document

      a. 插入一條document:  樣本:db.persons.insert({"_id":"001", "name":"zhangsan", "age":23})

      

      說明:可以理解成就是以JSON格式進行增加,findOne()是查詢第一條記錄.

      b.批量插入:說白了,就是插入一個數組:,如下:

      

      說明:在老的版本中好像還不支援批量插入,但是新的版本已經支援了,在老的版本中,可以寫一個for迴圈實現批量增加,既然新版本已經有了

      批量增加,就用這種方式吧。

(2) save操作:save操作和insert操作區別在於當遇到_id相同的情況下,save會對那條資料進行跟新操作,insert則會報錯。如下:

      

(3) remove操作:刪除資料。不帶條件全部刪除:db.persons.remove().下面寫一個帶條件刪除的:db.persons.remove({"_id":"003"}),如下:

      

(4):update操作:update操作中的修改器會在下篇再說,這裡說一下:強硬的文檔替換式更新操作,說白了,就是將先前的記錄刪除掉,再添加一條新

     的(也可以說成是整體更新),如下:db.persons.update({"_id":"001"}, {"age":22})

     

     說明:a.update方法文法:update(查詢條件, 更新結果); <其實並不止兩個參數,後面會接觸到>

       b.從上面的結果可以看出,雖然age這個欄位得到了更新,但是name欄位卻沒有了,這就是強硬的document替換式更新操作,就

       是用新的這一條替換原來那一條。後面所講的修改器是一種局部的更新。

       c.注意:主鍵衝突的時候會報錯並且停止更新操作 ,因為是強硬替換當替換的文檔和已有文檔ID衝突的時候 ,則系統會報錯

 

(5): upsert操作:顧名思義,這是兩個單詞的縮寫:update和insert,這個操作的目的是如果有這個資料,就進行更新操作,如果沒有這個資料

     就進行插入操作。但是要注意,其實並沒有upsert這個方法,upsert只是一種說法,它的實現還是靠update方法來做的。將update方法的

     第三個參數改成true即可做到upsert。 如下:db.persons.update({"_id":"003"},{"name":"wangwu"},true)  

   

     從結果可以看出,要更新的資料在原本的資料中不存在,所有就添加了一條資料,不過_id值是自動產生的,不能指定(這裡有點糾結,為什

   麼不用我的_id呢?)。

(6):批次更新操作, 在預設情況只會更新合格第一條,即使有多條資料符合查詢條件,也只會更新第一條資料,如下:

      

      那如何做到全部更新呢?將update方法的第四個參數改為true即可,如下:db.persons({"name":"wangwu"},{"name":"zhaoliu"},false,true)

      

  注意:中剛開始的時候報了一個錯:multi update only works with $ operators,就是說如果用了批次更新,就只能夠進行局部更新,而

         不能進行整體更新。$set是一個修改器,是進行局部更新操作的。可以把它看成是一個特殊的鍵(時刻牢記JSON的格式就不會暈)。下篇就會講

         修改器。

Mongodb(三):Mongodb的增刪改查(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.