MongoDB入門篇--增刪改查,mongodb入門篇--增刪

來源:互聯網
上載者:User

MongoDB入門篇--增刪改查,mongodb入門篇--增刪

  

    在上篇博文mongodb已經成功啟動:http://blog.csdn.net/u010773667/article/details/41847487,接下來就該進行一系列操作了。我們再開一個cmd,輸入【mongo】命令開啟shell即mongodb的用戶端,預設串連的是“test”資料庫,我這裡設定集合(表)為student。圖一:



1. 添加insert


文法:db.集合.insert({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})


2. 尋找find
2.1全部查詢


文法:db.集合.find()


2.2條件查詢


文法:db.集合.find({“Col1”:”列值1”,”Col2”:”列值2”,…,”Coln”:”列值n”})


操作樣本:添加+尋找



 
注意:“_id"這個欄位是資料庫預設給我們加的GUID,目的是保證資料的唯一性。


3.修改
3.1全部修改update


文法:db.集合.update({“Col”:”列值”},{”Col2”:”列值2”,…,”Coln”:”列值n”})


注意:


第一個參數{…}為“尋找的條件”,第二個參數{…}為“要更新的值”;
Update()為全部修改,第二個參數中需要包含全部的”欄位”,否則更新後會造資料的丟失,具體影響請見樣本。


操作樣本:全部修改+錯誤執行個體



3.2.局部修改


Mongodb中為局部修改提供了兩個修改器: $inc 和 $set。


 ① $inc修改器
$inc即increase的縮寫,自增$inc指定的值,如果“文檔”中沒有此key,則會建立key。

文法:db.集合.update({"col1":"列值1"},{$inc:{"col2":"列值2",...,"coln":"列值n"}}


 ②  $ set修改器

直接將對應的資料替換為$set指定的值。

文法:db.集合.update({"col1":"列值1"},{$set:{"col2":"列值2",...,"coln":"列值n"}})


操作樣本:局部修改+進階修改



3.3 upsert操作


Upsert=update+insert,智能判斷更新或添加,所以我更願意稱之為進階修改。也就是說:如果查到了文檔直接更新,否則在資料庫裡面新增一條。 將update的第三個參數設為true即可。操作樣本見。


文法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true)


3.4批量修改


在前面幾個的基礎上進行改進,不在多做解釋。
文法:db.集合.update({"Col":"列值"},{$inc:{"Col2":"列值2",…,"Coln":"列值n"}},true,true)


操作樣本:批量修改


4.刪除remove


文法:db.集合.remove()
     db.集合.remove({"Col":"列值"},{"Col2":"列值2",…,"Coln":"列值n"})


操作樣本:刪除


(5~6為進階操作,不做詳細介紹)


5.分組查詢group


操作樣本:分組尋找


6.除重distinct
7.統計count


操作樣本:除重+統計


    以上是我操作後的執行個體分享,再次操作一遍感覺收穫的更多。還記得剛開始動手操作的時候,關於修改部分只接觸了全部修改,當時那時候還以為跟其他資料庫操作一樣修改就是一個update()方法,所以實踐的時候就直接進行了部分修改,後果就像圖中顯示的一樣造成了資料丟失。當時還在想“不會吧,難道只修改一兩個欄位還要把所有的都寫上嗎?這也太麻煩了吧。。。”,後來跟旁邊的大神周響師哥討論他告訴我mongodb修改有兩種方法也就是上文提到的mongodb專門封裝的部分修改的方法。當時貌似當時走了彎路,不過現在想想真的是彎路嗎?







相關文章

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.