Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Node.js MongoDB 更新


更新文档

可以使用 updateOne() 方法更新记录或 MongoDB 中的文档。

updateOne() 方法的第一个参数是定义要更新哪个文档的查询对象。

注意: 如果查询找到多个记录,则仅更新第一个出现的记录。

第二个参数是定义文档新值的 对象。

示例

更新地址为 "Valley 345" 的文档,使其名称为 "Mickey",地址为 "Canyon 123"

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log("已更新 1 个文档");
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_update_one.js" 的文件中,然后运行该文件

运行 "demo_update_one.js"

C:\Users\您的姓名>node demo_update_one.js

这将为您提供以下结果

已更新 1 个文档


仅更新特定字段

使用 $set 运算符时,仅更新指定的字段

示例

将地址从 "Valley 345" 更新为 "Canyon 123"

...
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: { address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
...
运行示例 »

更新多个文档

要更新所有符合查询条件的文档,请使用 updateMany() 方法。

示例

更新所有名称以字母 "S" 开头的文档

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var myquery = { address: /^S/ };
  var newvalues = {$set: {name: "Minnie"} };
  dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) {
    if (err) throw err;
    console.log(res.result.nModified + " 个文档已更新");
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_update_many.js" 的文件中,然后运行该文件

运行 "demo_update_many.js"

C:\Users\您的姓名>node demo_update_many.js

这将为您提供以下结果

2 个文档已更新

结果对象

updateOne()updateMany() 方法返回一个对象,其中包含有关执行如何影响数据库的信息。

大多数信息并不重要,但对象内的一个对象称为 "result",它告诉我们执行是否成功,以及受影响的文档数量。

结果对象如下所示

{ n: 1, nModified: 2, ok: 1 }

可以使用此对象返回更新的文档数量

示例

返回更新的文档数量

console.log(res.result.nModified);

这将产生以下结果

2

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.