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"
}
输出清楚地显示一条记录与条件匹配,因此修改了相关的字段值。