• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mongodb] Node.js - MongoDB Update (데이터 수정)

4,062  

목차

  1. document 1개 수정 - updateOne() 메서드
  2. 특정 문서의 특정 필드만 수정
  3. document 다수 수정 - updateMany() 메서드
  4. result 객체

 

document 1개 수정 - updateOne() 메서드

 

문서를 수정하려면 updateOne() 메서드를 사용.

 

updateOne() 메서드의 첫 번째 매개변수는 수정할 문서를 정의하는 쿼리 객체임.

참고 : 쿼리에서 둘 이상의 문서를 찾으면 첫 번째 항목만 수정됨.

두 번째 매개 변수는 문서의 새 값을 정의하는 객체.

 

[예제]


1. C:\User\사용자명\hz.js 생성.

 

var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/";

const options = {useUnifiedTopology: true}; 


 

 

MongoClient.connect(url, options, function(err, db) {

  if (err) throw err;

  var dbo = db.db("hz");

  var myquery = { mb_name: "AAA" };

  var newvalues = { $set: {mb_name: "ABC", mb_level: "10" } };

  dbo.collection("hz_member").updateOne(myquery, newvalues, function(err, res) {

    if (err) throw err;

    console.log("1 document 수정 완료.");

    db.close();

  });

}); 


2. CMD 모드에서 아래 명령어 입력해 시작 설정.

 

C:\User\사용자명>node hz.js

 


[결과값]

 

1 document 수정 완료.

 

 

PS.

특정 문서의 특정 필드만 수정

 

var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/";

const options = {useUnifiedTopology: true}; 


MongoClient.connect(url, options, function(err, db) {

  if (err) throw err;

  var dbo = db.db("hz");

  var myquery = { mb_name: "AAA" };

  var newvalues = { $set: {mb_name: "ABC"} };

  dbo.collection("hz_member").updateOne(myquery, newvalues, function(err, res) {

    if (err) throw err;

    console.log("1 document 수정 완료.");

    db.close();

  });

});

 

 

document 다수 수정 - updateMany() 메서드

 

둘 이상의 문서를 수정하려면 updateMany() 메서드 사용.

updateMany()메서드의 첫 번째 매개 변수는 수정할 문서를 정의하는 쿼리 개체임.

 


1. C:\User\사용자명\hz.js 생성.

 

var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/";

const options = {useUnifiedTopology: true}; 


MongoClient.connect(url, options, function(err, db) {

  if (err) throw err;

  var dbo = db.db("hz");

  var myquery = { mb_level: /^4/ };

  var newvalues = {$set: {mb_level: "9"} };

  dbo.collection("hz_member").updateMany(myquery, newvalues, function(err, res) {

    if (err) throw err;

    console.log(res.result.nModified + " document(s) 수정 완료.");

    db.close();

  });

});

 


2. CMD 모드에서 아래 명령어 입력해 시작 설정.

 

C:\User\사용자명>node hz.js

 


[결과값]

 

4 document(s) 수정 완료.

 

 

result 객체

 

1.

updateOne()updateMany() 메서드 실행하면, 쿼리가 테이블에 미치는 영향 정보가 담긴 객체(예: res)를 반환하는데, 이 객체 내부의 한 객체인 "result"는 실행이 정상인지, 얼마나 많은 문서가 영향을 받았는지 정보를 알려줌.

res.result = { n: 4, nModified: 4, ok: 1 }

※ n : 영향 받은 개수.

※ nModified : 수정된 개수.

※ ok : 실행 정상 여부.

 

2. 

result 객체 안의 각 속성의 속성값 접근 방법

res.result.property 

(예)

res.result.n = 4; // 영향 받은 개수

res.result.nModified = 4; // 수정된 개수

res.result.ok = 1 // 실행 정상 여부

 

3.

콘솔에 수정된 개수 출력하기.

console.log(res.result.nModified); // 4

주의: console.log()는 JS 명령어라, CMD 모드에 바로 입력 불가. 

 



분류 제목
mongodb Node.js - MongoDB 설치・연결
mongodb Node.js - MongoDB Create Database (DB 생성)
mongodb Node.js - MongoDB Create Collection (콜렉션 생성)
mongodb Node.js - MongoDB Insert (데이터 입력)
mongodb Node.js - MongoDB Find (데이터 찾기)
mongodb Node.js - MongoDB Query (검색 쿼리)
mongodb Node.js - MongoDB Sort (데이터 정렬)
mongodb Node.js - MongoDB Delete (데이터 삭제)
mongodb Node.js - MongoDB Drop Collection (콜렉션 삭제)
mongodb Node.js - MongoDB Update (데이터 수정)
mongodb Node.js - MongoDB Limit (데이터 출력개수)
mongodb Node.js - MongoDB Join (콜렉션 결합)
목록
찾아주셔서 감사합니다. Since 2012