MongoDB操作手冊CRUD更新update

2021-12-29 21:27:24 字數 1590 閱讀 8072

修改記錄

mongodb提供了update()方法用於更新記錄。這個方法接受以下引數:

乙個更新條件的json物件用於匹配記錄,乙個更新操作json物件用於宣告更新操作,和乙個選項json物件

宣告查詢條件,使用和查詢一樣的結構和語法。

預設情況下,update()更新單條記錄,若要更新多條記錄, 請使用multi選項。

用於更新某個欄位的某個值,mongodb提供了update操作符,比如$set。

在執行更新操作時,一些操作符回建立沒有的字段,如$set。

測試資料:db.testdata.insert();

對於某條記錄,其中item字段值為mno2,使用$set操作符來更新它的category和details欄位,使用$currentdate操作符來更新lastmodified欄位

db.testdata.update(,},

$currentdate:});

這個更新操作返回包含著操作狀態的writeresult物件。

乙個成功的更新操作返回如下結果:

writeresult()

nmatched總段表明匹配的記錄數,nmodified欄位表明修改的記錄數。

使用"."操作符,並將這個屬性用引號括起來。

例:更新內嵌的model的details欄位

db.testdata.update(,});

更新包含category,值為」clothing「的所有記錄的category值為「apparel」,lastmodified欄位為當前時間

db.testdata.update(,,

$currentdate:},)

除_id欄位外,替換一條記錄的所有內容,需要將新的整個記錄的物件作為update()方法的第二個引數傳進來。

替換的記錄可以與之前的記錄有著不同的字段,由於_id欄位是 不可變的,在替換記錄中可以省略_id欄位。如果非要包含該欄位,必須是集合中存在的乙個值。

例:替換item欄位為be10的記錄。替換後新的記錄將只包含_id欄位和替換記錄中的字段。

db.testdata.update(

,, ],

category: "apparel"})

預設情況下,如果update()方法中沒有匹配記錄,這個方法將不執行任何操作。

但是,如果宣告upsert:true,在有匹配記錄的時候將進行更新,沒有匹配的時候將進行插入操作。

當使用update操作來替換一條記錄的時候宣告upsert:true,如果沒有匹配的記錄,mongodb將使用update中的 查詢條件建立一條新的記錄,然後使用update中的用於替換的記錄來替換新建立的記錄的除_id欄位外的所有內容。

db.testdata.update(,,

stock: [ ],

category: "houseware"},)

結果:nupserted「:1表明

writeresult()

當使用update操作來更新一條記錄的時候宣告upsert:true,同上

db.testdata.update(,,

category:

"houseware"}},

)

MongoDB操作手冊CRUD查詢效能分析

explain cursor方法允許觀察查詢系統執行的操作。這個方法對於分析高效查詢和決定如何使用索引進行查詢是十分有用的。這個方法檢測的是查詢的操作,而不是查詢執行時間。因為這個方法嘗試多個查詢計畫,它並不能準確的反映出查詢執行時間。使用explain 方法,呼叫find 返回的指標的該方法即可。...

MongoDB 操作手冊

通過mongo shell使用資料庫 crud操作 開啟mongo shell前確保mongodb正在執行 開啟windows終端 或命令提示符 cd進入mongodb安裝目錄 cd bin 我這裡是c program files mongodb server 4.2 cd c program fi...

Docker操作手冊

安裝 curl fssl sh sudo groupadd docker sudo gpasswd a docker登出 重新登陸 檢視映象 docker search 用互動方式建立並進入容器 docker run i t 映象id bin bash 再次進入容器docker start 容器id...