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 document updated");
    db.close();
  });
});

위의 코드를 "demo_update_one.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_update_one.js" 실행

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

다음과 같은 결과를 얻을 수 있습니다.

1 document updated


특정 필드만 업데이트

연산자를 사용할 때 $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 + " document(s) updated");
    db.close();
  });
});

위의 코드를 "demo_update_many.js"라는 파일에 저장하고 파일을 실행합니다.

"demo_update_many.js" 실행

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

다음과 같은 결과를 얻을 수 있습니다.

2 document(s) updated

결과 개체

및 메서드 updateOne()updateMany()실행이 데이터베이스에 어떤 영향을 미쳤는지에 대한 정보가 포함된 개체를 반환합니다.

대부분의 정보는 이해하는 것이 중요하지 않지만 개체 내부의 한 개체를 "결과"라고 하며 실행이 정상적으로 되었는지와 영향을 받은 문서 수를 알려줍니다.

결과 개체는 다음과 같습니다.

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

이 객체를 사용하여 업데이트된 문서 수를 반환할 수 있습니다.

예시

업데이트된 문서 수를 반환합니다.

console.log(res.result.nModified);

다음 결과가 생성됩니다.

2