本文主要介紹MongoDB數(shù)據(jù)庫增刪改查操作,
MongoDB之增刪改查(一)
。增
mongoDB和其他關系型數(shù)據(jù)庫一樣,通過insert來增加數(shù)據(jù)到集合中去。
<code class="hljs avrasm">db.collectionName.insert(內容)</code>
顯示數(shù)據(jù)庫中所有集合:
<code class="hljs avrasm"><code class="hljs sql">show collections</code></code>
<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxociAvPg0KPGgyIGlkPQ=="刪">刪
MongoDB中通過remove來刪除集合中符合一定條件的文檔。
remove接受一個參數(shù),作為尋找要刪除文檔的條件:
當然了,也可以直接刪除一整個集合,通過drop方法:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm">db.person.drop()</code></code></code>
刪除集合然后重建索引比刪除集合中所有的文檔速度要快。
改
改
修改操作相比增加和刪除而言較為復雜,因為MongoDB不僅僅可以使用update方法,還可以使用很多的輔助修改器,我們先來說說update方法。
update
update
update方法接受兩個參數(shù),第一個是找到文檔的限定條件,第二個需要修改的新文檔:
上面update中的({“name”:”liufang”},post),中的name:liufang相當于關系型數(shù)據(jù)庫中的where中的判斷條件,而post則相對于set語句后的執(zhí)行內容。
更新最簡單的就是使用一個新文檔來替代匹配的文檔,這適用于模式結構發(fā)生較大變化的時候.如將下面的文檔:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript">{ "name":"tyq", "age":22, “date”:new Date()}</code></code></code></code>
修改為:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash">{ "name":"tyq", “age”:22, “friends”:”liufang”}</code></code></code></code></code>
如下圖:
修改器
修改器
再來談談MongoDB強大的修改器。
MongoDB有著一些輔助修改器,比如
$inc
$inc
$inc用來增加和減少鍵或者值。
當其用來增加已有鍵的值時,如果不存在鍵,就增加該鍵。通常用于分析數(shù)據(jù),投票等位置。如:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm">db.person.insert( {"url":"blog.csdn.net/mevicky"})</code></code></code></code></code></code>
使用$inc增加一個鍵pageViews,默認值為10000
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( {"url":"blog.csdn.net/mevicky"}, {"$inc":{"pageViews":10000}})</code></code></code></code></code></code></code>
使用$inc給鍵pageViews再添加10000
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( {"url":"blog.csdn.net/mevicky"}, {"$inc":{"pageViews":10000}})</code></code></code></code></code></code></code></code>
也可以使用$inc給鍵pageViews減少10000
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( {"url":"blog.csdn.net/mevicky"}, {"$inc":{"pageViews":-10000}})</code></code></code></code></code></code></code></code></code>
示例如下:
$set
$set
$set用來指定一個鍵的值,如果鍵不存在,則創(chuàng)建該鍵,一般用于更新值或者增加新定義的鍵。如:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.insert( { "name":"lf", "age":23, "sex":"male" })</code></code></code></code></code></code></code></code></code></code>
添加喜歡的書籍:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( { "name":"lf" }, { "$set":{"book":"war and peace"} })</code></code></code></code></code></code></code></code></code></code></code>
修改喜歡的書籍:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( { "name":"lf" }, { "$set":{"book":"war and peace2"} })</code></code></code></code></code></code></code></code></code></code></code></code>
示例如下:
$unset
$unset
$unset用于將鍵刪除,如果沒有找到也不會報錯,
電腦資料
《MongoDB之增刪改查(一)》(http://www.szmdbiao.com)。
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( { "name":"lf" }, { "$unset":{"book":1} })</code></code></code></code></code></code></code></code></code></code></code></code></code>
$push
$push
例如,向以上文檔中,添加一個包含一個數(shù)組的”comment”鍵,還向 comment 數(shù)組push一個評論.
這個數(shù)組會自動創(chuàng)建,并加入評論:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm">db.person.update( {"name":"lf"}, { $push: { "comments": { "name":"tyq", "content":"nice" } } })</code></code></code></code></code></code></code></code></code></code></code></code></code></code>
示例如下:
$pop
$pop
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs php">{$pop:{key:1}}//從數(shù)組末尾刪除一個元素{$pop:{key:-1}}//從數(shù)組頭部刪除一個元素</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
$pull
$pull
$pull可以根據(jù)指定的特定條件刪除元素,也可以根據(jù)位置刪除元素:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs php"><code class="hljs perl">db.person.update( {"name":"lf"}, { "$pull": { "emails":"362512489@qq.com" } })</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>
$pull會將所有匹配的部分刪掉,比如數(shù)組【1,2,3,4,4,4】,執(zhí)行pull 4后,得到的數(shù)組是【1,2,3】
$addToSet
$addToSet
$addToSet用于向數(shù)組添加數(shù)據(jù),如果數(shù)組中有,則不再重復添加。
$each
$each
$each用來運行修改器向集合多次操作數(shù)據(jù),可以利用$addToSet和$each一起來添加不同的值:
<code class="hljs avrasm"><code class="hljs sql"><code class="hljs avrasm"><code class="hljs vbscript"><code class="hljs bash"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs avrasm"><code class="hljs php"><code class="hljs perl"><code class="hljs perl">db.users.update( {"name":"lf"}, { "$addToSet": { "emails": { "$each": [ "362512489@111.com", "362512489@112.com", "362512489@113.com" ] } } })</code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code></code>