이번 포스팅에서는 $set
과 $unset
operator를 이용하여 도큐먼트를 업데이트 하는 방법에 대하여 알아보도록 하겠습니다.
$set
$set
operator는 해당 key가 존재할 경우 아이템을 새로 추가하거나 또는 해당 key가 존재하지 않는다면 새로 추가합니다.
우선 아래와 같이 데이터 준비를 준비합니다:
// drop the current database
db.dropDatabase()
// define webpage1
var user1 = {
"username" : "gchoi",
"age" : 37,
"sex" : "male"
}
// insert items into DB
db.users.insert(user1)
db.users.find()
_id
를 제외하고는 다음과 같은 아이템들이 출력될 것입니다.
> db.users.find().pretty()
{
"_id" : ObjectId("5fa7c4430a2aa59573a4d1a5"),
"username" : "gchoi",
"age" : 37,
"sex" : "male"
}
이제 favorite food
key 생성합니다:
// update(create "favorite food" key)
db.users.update_one(
{"username" : "gchoi"},
{"$set" : {"favorite food" : "김치볶음밥"}}
)
아래와 같이 favorite food
아이템이 추가되었음을 확인할 수 있을 것입니다:
> db.users.find()
> db.users.find().pretty()
{
"_id" : ObjectId("5fa7c4430a2aa59573a4d1a5"),
"username" : "gchoi",
"age" : 37,
"sex" : "male",
"favorite food" : "김치볶음밥"
}
favorite food
key를 array 형태로 입력할 수도 있습니다:
db.users.update_one(
{"username" : "gchoi"},
{"$set" : {"favorite food" : ["돼지갈비", "삼겹살", "된장찌개"]}}
)
array 형태의 favorite food
아이템이 출력됩니다:
> db.users.find()
{
"_id" : ObjectId("5fa7c4430a2aa59573a4d1a5"),
"username" : "gchoi",
"age" : 37,
"sex" : "male",
"favorite food" : [
"돼지갈비",
"삼겹살",
"된장찌개"
]
}
$unset
이제 $unset
operator를 이용하여 favorite food
key를 제거해 보겠습니다.
// remove "favorite food"
db.users.update_one(
{"username" : "gchoi"},
{"$unset" : {"favorite food" : 1}}
)
결과를 출력을 해보면 favorite food
key가 제거되었음을 확인하실 수 있습니다:
> db.users.find()
{
"_id" : ObjectId("52dbdd7aa1c05d0be00a4b63"),
"age" : 37,
"sex" : "male",
"username" : "gchoi"
}