- 添加文檔
在mongodb中,用db.collection.insert()方法向集合中添加一個新的文檔。此外,還能夠用db.collection.update()和db.collection.save()也可經過一個補稱爲更新插入(upsert)的操做添加一個新文檔。若是文檔存在執行更新操做,返之執行插入操做。
insert() 插入:
db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
*_id的值必須惟一
用update()插入: db.inventory.update(
{ type: "book", item : "journal" },
{ $set : { qty: 10 } },
{ upsert : true }
)
MongoDB 自動添加_id字段並賦一個惟一值。若是qty=11 不存在,則插入。
![](http://static.javashuo.com/static/loading.gif)
save() 插入
若是_id的值已存在,則執行更新,反之,插入新文檔。
db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
- 修改文檔
在MongoDB,用db.collection.update()和db.collection.save()方法修改集合中已存在的文檔。
db.collection.save()只根據_id 字段進行修改
db.collection.update()可根據條件修改一個或多個文檔。
save()修改
db.inventory.save(
{
_id: 10,
type: "misc",
item: "placard"
}
)
update()修改
默認狀況下,update()只修改一個文檔,若是multi=true,則更新符合條件的全部文檔(multi update only works with $ opterators)。
db.collection.update(
<query>,
<update>,
{
upsert: <Boolean>,
multi: <Boolean>,
}
)
以下測試:
集合中原有文檔:
![](http://static.javashuo.com/static/loading.gif)
執行update()後:
![](http://static.javashuo.com/static/loading.gif)
加上multi:true,執行結果:
![](http://static.javashuo.com/static/loading.gif)
修改器:
一般狀況下,文檔只會更新一部份內容。利用更新修改器,更新很是高效。更新修改器是種特殊的鍵,用來指定複雜的更新操做,好比調整、增長或者刪除鍵,還多是操做數組或者內嵌文檔。
$inc 增長或減小修改器
用來增長或減小已有鍵的值,若是鍵不存在便自動建立。只能用於成天數、長整數或雙精度浮點數。默認狀況下,只更新所匹配的第一條,若是更新匹配的全部文檔,需設置multi:true.
如下爲測試事例:
不加multi:true
![](http://static.javashuo.com/static/loading.gif)
加multi:true:
![](http://static.javashuo.com/static/loading.gif)
$set修改器
$set 用來指定一個鍵的值。若是該鍵不存在,則自動建立。跟$inc相似,若是更新多個文檔需設置multi:true.事例以下:
![](http://static.javashuo.com/static/loading.gif)
mongodb
- 刪除文檔
在MongoDB中,用db.collection.remove()執行刪除,這個比較簡單。如下分別爲刪除集合中的全部文檔,刪除匹配條件的文檔,刪除匹配條件的第一個文檔。
db.inventory.remove()
db.inventory.remove( { type : "food" } )
db.inventory.remove( { type : "food" }, 1 )