bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/Node.js/Database Integration
Node.js•Database Integration

Node.js MongoDB Update

Update Document

You can update a record, or document as it is called in MongoDB, by using the updateOne() method.

The first parameter of the updateOne() method is a query object defining which document to update.

Note

If the query finds more than one record, only the first occurrence is updated.

The second parameter is an object defining the new values of the document.

Example

Update the document with the address "Valley 345" to name="Mickey" and address="Canyon 123":

let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
 if (err) throw err;
 let dbo = db.db("mydb");
 let myquery = { address: "Valley 345" };
 let newvalues = {
 $set: {name: "Mickey", address: "Canyon 123" } };
 dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
 if (err) throw err;
 console.log("1 document updated");
 db.close();
 });
 });

Save the code above in a file called "demo_update_one.js" and run the file:

Run "demo_update_one.js"

C:\Users\
Your Name
>node demo_update_one.js

Which will give you this result

1 document updated

Update Only Specific Fields

When using the $set operator, only the specified fields are updated:

Example

Update the address from "Valley 345" to "Canyon 123":

...
let myquery = { address: "Valley 345" };
let newvalues = {
 $set: { address: "Canyon 123" }
};
dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) { ...

Update Many Documents

To update all documents that meets the criteria of the query, use the updateMany() method.

Example

Update all documents where the name starts with the letter "S":

let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
 if (err) throw err;
 let dbo = db.db("mydb");
 let myquery = { address: /^S/ };
 let newvalues = {$set: {name: "Minnie"} };
 dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) {
 if (err) throw err;
 console.log(res.result.nModified + " document(s) updated");
 db.close();
 });
});

Save the code above in a file called "demo_update_many.js" and run the file:

Run "demo_update_many.js"

C:\Users\
Your Name
>node demo_update_many.js

Which will give you this result

2 document(s) updated

The Result Object

The updateOne() and the updateMany() methods return an object which contains information about how the execution affected the database.

Most of the information is not important to understand, but one object inside the object is called "result" which tells us if the execution went OK, and how many documents were affected.

The result object looks like this

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

You can use this object to return the number of updated documents:

Return the number of updated documents

console.log(res.result.nModified);

Which will produce this result

2

Previous

Node.js MongoDB Drop

Next

Node.js MongoDB Limit

This chapter

Overview
24

Lessons

70m

Read time

1. Node.js MySQL2. Node.js MySQL Create Database3. Node.js MySQL Create Table4. Node.js MySQL Insert Into5. Node.js MySQL Select From6. Node.js MySQL Where7. Node.js MySQL Order By8. Node.js MySQL Delete9. Node.js MySQL Drop Table10. Node.js MySQL Update11. Node.js MySQL Limit12. Node.js MySQL Join13. Node.js MongoDB14. Node.js MongoDB Create Database15. Node.js MongoDB Create Collection16. Node.js MongoDB Insert17. Node.js MongoDB Find18. Node.js MongoDB Query19. Node.js MongoDB Sort20. Node.js MongoDB Delete21. Node.js MongoDB Drop22. Node.js MongoDB Update23. Node.js MongoDB Limit24. Node.js MongoDB Join

On this page

Update DocumentUpdate Only Specific FieldsUpdate Many DocumentsThe Result Object