05-21 00:01
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[MongoDB] Update Modifiers / Part 4. - $push 본문

Data Science/MongoDB

[MongoDB] Update Modifiers / Part 4. - $push

cinema4dr12 2014. 1. 25. 22:52

Written by cinema4d

이번 글에서는 "$push" modifier에 대해 알아 보겠다.

"$push" modifier는 DB에 item을 계속 추가하는 명령어이다.

우선 설명에 앞서 다음 명령어를 준비하자.

use foobar
var user = {"username" : "gchoi", "age" : 37};
db.users.insert(user);


다음과 같은 결과를 확인할 수 있을 것이다.

> db.users.find() { "_id" : ObjectId("52e3c2e4623bbd008840d66f"), "username" : "gchoi", "age" : 37 }


이제 "$push" modifier를 통해 "email"을 추가해 보자.

db.users.update({"username" : "gchoi"}, {$push : {"email" : "gchoi@gmail.com"}});


다음과 같이 "email"이 추가된 것을 볼 수 있을 것이다.

> db.users.find() { "_id" : ObjectId("52e3c2e4623bbd008840d66f"), "age" : 37, "email" : [  "gchoi@gmail.com" ], "username" : "gchoi" }


"$push" modifier를 한 번 더 입력하여 동일한 "email"을 추가하고 결과를 확인하면 다음과 같다.

> db.users.find() { "_id" : ObjectId("52e3c2e4623bbd008840d66f"), "age" : 37, "email" : [  "gchoi@gmail.com",  "gchoi@gmail.com" ], "username" : "gchoi" }


결과를 보면, 동일한 "email"이 중복적으로 추가되었음을 확인할 수 있다.

즉, "$push" modifier를 사용하면 중복적이더라도 계속적으로 아이템이 추가된다. 이렇게 중복적으로 아이템이 추가되는 것을 방지하려면 "$addToSet" 명령어를 사용한다.

이 명령어는 다음 글에 이어서 다루도록 하겠다.

Comments