選單
×
   ❮     
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" 的文件更新為 name="Mickey" 和 address="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\Your Name>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\Your Name>node demo_update_many.js

這將產生以下結果:

2 個文件已更新

結果物件

updateOne() 和 updateMany() 方法會返回一個物件,其中包含關於執行如何影響資料庫的資訊。

其中大部分資訊並不重要,但物件中的一個名為 "result" 的物件告訴我們執行是否成功,以及有多少文件受到了影響。

result 物件看起來是這樣的

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

您可以使用此物件來返回更新的文件數量

示例

返回已更新的文件數

console.log(res.result.nModified);

這將產生以下結果:

2

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援