NodeJS

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

3,820

목차

  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 모드에 바로 입력 불가. 

 



분류 제목
basic Node.js - Home
basic Node.js - Intro (소개)
basic Node.js - Start (시작) - 사용 환경 구축
basic Node.js - Modules (모듈)
basic Node.js - HTTP Module (데이터 전송 모듈)
basic Node.js - File System Module (파일 시스템 모듈)
basic Node.js - URL Module (주소 처리 모듈)
basic Node.js - NPM (노드 패키지 관리자)
basic Node.js - Events (이벤트)
basic Node.js - Upload Files (파일 업로드) 2
basic Node.js - Email (이메일 보내기)
mysql Node.js - MySQL 설치・연결 + 쿼리 보내기
mysql Node.js - MySQL Create Database (DB 생성)
mysql Node.js - MySQL Create Table (테이블 생성) ※ Primary key 설정.
mysql Node.js - MySQL Insert Into (데이터 삽입)
1/5
목록
 홈  PC버전 로그인 일본어
웹디자인언어 1
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱 PC버전 로그인