일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 김양재 목사
- 확률
- 몽고디비
- data science
- 김양재
- Big Data
- 데이터 과학
- No SQL
- 빅데이터
- 인공지능
- c++
- Statistics
- Artificial Intelligence
- openCV
- Deep learning
- R
- 빅 데이타
- 빅 데이터
- WebGL
- probability
- 딥러닝
- MongoDB
- 빅데이타
- 우리들교회
- 통계
- 김양재 목사님
- nodeJS
- node.js
- Machine Learning
- 주일설교
Archives
- Today
- Total
Scientific Computing & Data Science
[MongoDB] Update Modifiers / Part 8. - Updating Multiple Documents 본문
Data Science/MongoDB
[MongoDB] Update Modifiers / Part 8. - Updating Multiple Documents
cinema4dr12 2014. 1. 30. 21:43
by Geol Choi |
"update" 쿼리는 기본적으로 기준에 부합하는 첫번째 도큐먼트만 업데이트 한다. 즉 기준에 부합하는 도큐먼트가 더 있을 경우 부합하는 첫번째 도큐먼트를 제외한 나머지 도큐먼트의 내용은 그대로 유지된다.
만약 기준에 부합하는 모든 도큐먼트를 업데이트하려면 "update"의 네번째 파라미터를 "true"로 설정한다.
우선 테스트용 데이터를 다음과 같이 준비하는데 고객의 이름과 생일을 입력해 보자.
db.customers.remove()
db.customers.insert({name: "gchoi", birthday:"08/22"})
db.customers.insert({name: "jmpark", birthday:"04/02"})
db.customers.insert({name: "tjkwak", birthday:"11/11"})
db.customers.insert({name: "hskim", birthday:"12/08"})
db.customers.insert({name: "dsha", birthday:"04/02"})
입력한 결과는 다음과 같다.
> db.customers.find()
{ "_id" : ObjectId("52ea464d5e3b86c2a7325073"), "name" : "gchoi", "birthday" : "08/22" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325074"), "name" : "jmpark", "birthday" : "04/02" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325075"), "name" : "tjkwak", "birthday" : "11/11" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325076"), "name" : "hskim", "birthday" : "12/08" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325077"), "name" : "dsha", "birthday" : "04/02" }
입력된 결과를 눈여겨 보면, "jmpark"과 "dsha"의 생일이 모두 "04/02"로 동일함을 알 수 있다.
생일이 "04/02"인 고객을 기준으로 검색해 보면,
> db.customers.find({"birthday" : "04/02"})
{ "_id" : ObjectId("52ea464d5e3b86c2a7325074"), "name" : "jmpark", "birthday" : "04/02" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325077"), "name" : "dsha", "birthday" : "04/02" }
예상대로 "jmpark"과 "dsha"가 검색되었다.
오늘이 4월2일이라고 하고 오늘이 생일인 두 명의 고객에 대해 "gift" 키를 업데이트 해 보자.
db.customers.update({birthday : "04/02"}, {$set : {gift : "Happy Birthday!"}}, false, true)
만약 업데이트 된 도큐먼트에 대한 정보를 얻고자 한다면 "getLastError" 명령어를 입력한다.
> db.runCommand({getLastError : 1})
{
"updatedExisting" : true,
"n" : 2,
"connectionId" : 1,
"err" : null,
"ok" : 1
}
"updatedExisting" 값 true는 업데이트 된 도큐먼트가 존재함을 의미하며, "n" 값 2는 업데이트 된 도큐먼트의 수가 2개임을 의미한다.
현재 업데이트 된 결과를 출력해 보면 다음과 같다.
> db.customers.find()
{ "_id" : ObjectId("52ea464d5e3b86c2a7325073"), "name" : "gchoi", "birthday" : "08/22" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325075"), "name" : "tjkwak", "birthday" : "11/11" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325076"), "name" : "hskim", "birthday" : "12/08" }
{ "_id" : ObjectId("52ea464d5e3b86c2a7325074"), "birthday" : "04/02", "gift" : "Happy Birthday!", "name" : "jmpark" }{ "_id" : ObjectId("52ea464d5e3b86c2a7325077"), "birthday" : "04/02", "gift" : "Happy Birthday!", "name" : "dsha" }
"$set" update modifier의 네번째 파라미터가 "true"로 설정했음을 주목한다. 예상대로 "birthday" 키가 "04/02"로 되어있는 "jmpark"과 "dsha"에 "gift" 키가 생성되었음을 확인할 수 있다.
'Data Science > MongoDB' 카테고리의 다른 글
[MongoDB] Query / find (0) | 2014.02.01 |
---|---|
[MongoDB] Update Modifiers / Part 9. - findAndModify (0) | 2014.01.31 |
[MongoDB] Update Modifiers / Part 7. - Upsert (0) | 2014.01.30 |
[Data Science / MongoDB] WebSocket과 Mongoose를 이용하여 간단한 채팅 프로그램 개발 (0) | 2014.01.28 |
[MongoDB] Update Modifiers / Part 6. - $pop / $pull (0) | 2014.01.26 |
Comments