MongoDB 문법
데이터 전체 삭제
db.users.remove()
특정데이터 삭제
db.users.remove({"name":"joe"})
문서 치환
var joe = db.users.findOne({"name":"joe"});
joe.relationships = {"friend":joe.friends,"enemies":joe.enemies};
joe.username = joe.name;
delete joe.friends;
delete joe.enemies;
delete joe.name;
db.users.update({"name":"joe"}, joe);
갱신 제한자 (update modifier)
키를 변경, 추가 또는 제거하고 심지어 배열과 내장문서를 조작하는 복잡한 갱신 연산을 지정하는데 사용되는 특수 키다.
"$inc" : 키 값을 증가하는 제한자 (존재하지 않을 경우 생성, 정수형, long형과 double형 값에만 사용가능)
db.analytics.update({"url":"www.example.com"},{"$inc":{"pageviews":1}})
"$set" : 키 값을 설정/변경하는 제한자 (키의 데이터 형도 변경 가능)
db.users.update({"name":"joe"},{"$set": {"favorite book":"war and peace"}})
db.users.update({"name":"joe"},{"$set": {"favorite book":["aaa","bbb","ccc"]}})
db.users.update({"name":"joe"},{"$set": {"friends.name":"joe"},{"$set":{"friends.name":"joe's friend"}})
"$unset": 키와 값을 모두 제거하는 제한자
db.users.update({"name":"joe"},{"$unset",{"favoite book":1}})
# 키를 추가하고 변경하고 제거할 때 항상 $ 제한자를 사용해야한다.
배열 제한자
배열을 값으로 가진 키에만 사용 가능
"$push" : 지정된 키가 이미 존재하면 배열의 끝에 요소를 추가하고, 그렇지 않으면 새로운 배열을 생성해서 추가
db.blog.posts.update("{"title":"A blog post"},{"$push":{"comments":{"name":"joe","email":"joe@aaa.com","content":"nice post!!"}}})
"$ne" : 같은 값이 존재하지 않을 경우에만 배열에 값을 추가
db.papers.update({"authors cited":{"$ne":"aaa"}},{"$push":{"authors cited":aaa"}})
"$addToSet" : 중복을 막기 위해 사용
db.users.update({"name":"joe"},{"$addToSet":{"emails":joe@aaa.com}})
"$each" : 여러 개의 값을 추가 하기 위해 사용
"$addToSet" + "$each" : 여러 개의 고유 값을 추가하기 위해 조합 가능
db.users.update({"name":"joe"},{"$addToSet":{"emails":{"$each",["aaa@aaa.net",bbb@aaa.net]}}})
"$pop" : 배열을 큐(queue)나 스택처럼 쓰고싶다면, 양쪽 끝으로부터 요소를 제거할 때 사용
{"$pop":{"key":1}} 배열의 끝부터 요소 제거
{"$pop":{"key":-1}} 배열의 처음끝부터 요소 제거
"$pull": 배열에서 지정된 조건에 의해 제거해야 하는 경우 사용 (조건 일치하는 배열 요소 제거, 일치하는 모든 문서를 제거)
db.lists.update({},{"$pull":{"todo":"laundry"}})
배열의 위치 기반 변경
db.blog.posts.update({"title":"A blog post"},{"$set",{"comments.0.content":"aaa"}})
'개발자 > MongoDB' 카테고리의 다른 글
MongoDB 기초 (0) | 2013.02.01 |
---|