MongoDB的update()
和save()
方法用於將集合中的文件更新。update()
方法更新現有文件中的值,而save()
方法使用save()
方法中傳遞的文件資料替換現有文件。
update()
方法更新現有文件中的值。
語法
update()
方法的基本語法如下 -
> db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
範例
考慮mycol
集合具有以下資料 -
> db.mycol.find({}, {'_id':1, 'title':1})
{ "_id" : 100, "title" : "MongoDB Overview" }
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
>
以下範例將為標題為「MongoDB Overview
」的文件設定為「New Update MongoDB Overview
」。
> db.mycol.find({'title':'MongoDB Overview'},{'_id':1, 'title':1})
{ "_id" : 100, "title" : "MongoDB Overview" }
> # 更新操作
> db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New Update MongoDB Overview'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> # 查詢更新後的結果 -
> db.mycol.find({'_id':100},{'_id':1, 'title':1})
{ "_id" : 100, "title" : "New Update MongoDB Overview" }
>
預設情況下,MongoDB只會更新一個文件。要更新多個文件,需要將引數’multi
‘設定為true
。
>db.mycol.update({'title':'MongoDB Overview'},
{$set:{'title':'New Update MongoDB Overview'}},{multi:true})
save()
方法使用save()
方法中傳遞的文件資料替換現有文件。
語法
MongoDB save()
方法的基本語法如下所示:
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
以下範例將_id
為 100
的文件使用新的文件替換。
db.mycol.save(
{
"_id" : 100, "title":"Update By Save()Method.", "by":"tw511.com"
}
)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.mycol.find({'_id':100}, {'_id':1, 'title':1})
{ "_id" : 100, "title" : "Update By Save()Method." }