MongoDB 更新文件

MongoDB 提供 update() 命令來更新集合的文件。要僅更新要更新的文件,可以向更新語句新增條件,以便僅更新選定的文件。

命令中的基本引數是需要更新文件的條件,下一個是需要執行的修改。

以下示例顯示瞭如何完成此操作。

步驟 1: 發出更新命令

步驟 2: 選擇你要用來決定需要更新哪個文件的條件。在我們的示例中,我們想要更新 Employee id 為 22 的文件。

步驟 3: 使用 set 命令修改欄位名稱

步驟 4: 選擇要修改的欄位名稱並相應地輸入新值。

db.Employee.update(
{"Employeeid" : 1},
{$set: { "EmployeeName" : "NewMartin"}});

如果命令執行成功,將顯示以下輸出

輸出:

> db.Employee.updated(
... {"Employeeid" : ì}, 
... { $set:' { "EmployeeName" : "NewMartin" } } ); 
WriteResult({ "nMatched" : 1, "nupserted" : 0, "nModified" : 1 })

輸出清楚地顯示一條記錄與條件匹配,因此修改了相關的欄位值。

更新多個值

要確保在 MongoDB 中同時更新多個文件,你需要使用 multi 選項,否則預設情況下一次只修改一個文件。

以下示例顯示瞭如何完成此操作。

在此示例中,我們將首先找到 Employee id 為 1 的文件,並將 Employee 名稱從 Martin 更改為 NewMartin

步驟 1: 發出更新命令

步驟 2: 選擇你要用來決定需要更新哪個文件的條件。在我們的示例中,我們希望更新 Employee id 為 1 的文件。

步驟 3: 選擇要修改的欄位名稱並相應地輸入新值。

db.Employee.update
(
	{
		Employeeid : 1
	},
	{
		$set :
		{
			"EmployeeName" : "NewMartin"
			"Employeeid" : 22
		}
	}
)

如果命令執行成功,並且執行 find 命令以搜尋 Employee id 為 22 的文件,你將看到以下輸出將顯示

輸出:

> db.Employee.find({"Employeeid" : 22}).forEach(printjson)
{
	"_id" : objectId("563479cc8a8a4246bd27d784"), 
	"Employeeid" : 22, 
	"EmployeeName" : "NewMartin"
}

輸出清楚地顯示一條記錄與條件匹配,因此修改了相關的欄位值。