목차
document 1개 수정 - updateOne() 메서드
특정 문서의 특정 필드만 수정
document 다수 수정 - updateMany() 메서드
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 모드에 바로 입력 불가.
주소 복사
랜덤 이동
최신댓글