06. MongoDB Update Operators Part 3. - $push
이번 포스팅에서는 $push
operator에 대해 알아보도록 하겠습니다.
$push
operator는 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
opertor를 통해 "email"을 추가해 보겠습니다:
db.users.update({"username" : "gchoi"}, {$push : {"email" : "gchoi@gmail.com"}});
다음과 같이 "email"이 추가된 것을 볼 수 있을 것입니다:
> db.users.find().pretty()
{
"_id" : ObjectId("52e3c2e4623bbd008840d66f"),
"age" : 37,
"email" : [ "gchoi@gmail.com" ],
"username" : "gchoi"
}
$push
operator를 한 번 더 입력하여 동일한 "email"을 추가하고 결과를 확인하면 다음과 같습니다:
> db.users.find().pretty()
{
"_id" : ObjectId("52e3c2e4623bbd008840d66f"),
"age" : 37,
"email" : [
"gchoi@gmail.com",
"gchoi@gmail.com"
],
"username" : "gchoi"
}
결과를 보면, 동일한 "email"이 중복적으로 추가되었음을 확인할 수 있습니다.
즉, $push
operator를 사용하면 중복적이더라도 계속적으로 아이템이 추가됩니다. 이렇게 중복적으로 아이템이 추가되는 것을 방지하려면 $addToSet
명령어를 사용합니다.
이 명령어는 다음 포스팅에 이어서 다루도록 하겠습니다.