자 이제 몽고 DB를 좀 주물럭 거려보자..

1. 쉘 접속 ( 1회차를 참조하시라 )

2. Data Insert.

입력에 사용되는 데이터 타입은 JSON 타입이다.

JSON을 잘 모르겠다? 하는 사람은 

http://json.org/ 이곳에 접속해서 그림! 을 잘 따라가면!!! 이해할 수 있을것이다.

JSON은 
{ "key" : "value" } 의 형태를 가진 표현 방법이다.

사용가능한 변수 타입은 차후에 기록하는 것으로 미루고 

쉘에다 데이터를 넣어보자.

> var my insert = { "user" : "blahblah" , 
... "type" : "human",
... "age" : 30,
... "tune" : "no"
... };
Fri Jan 20 00:13:29 SyntaxError: missing ; before statement (shell):1
> var myinsert = { "user" : "blahblah" , 
... "type" : "human",
... "age" : 30,
... "tune" : "no"
... };
> db
framework
> db.test.insert(myinsert)



입력을 했더니 서버 로그가 좌르륵 올라간다.!

뭐지 하고 대충 확인해보니

첫 데이터를 입력하니 DB가 생성되었따는 문구 

그래 가서 확인해보는거야..



오호라... DB 명칭이 framework ...

파일명도 framework.* 

그렇군..



조회를 해보자..

> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "user" : "blahblah", "type" : "human", "age" : 30, "tune" : "no" }



데이터를 아무거나 하나 더 넣고 조회를 해보자.

> var myinsert2 = { "user" : "blahblah2" , 
... "type" : "alien",
... "age" : 26,
... "tune" : "yes"
... };
> db.test.insert(myinsert2)
> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "user" : "blahblah", "type" : "human", "age" : 30, "tune" : "no" }
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }



결과물에 추가로 기록된 _id는 차후에 설명하겠다.. 

일단 데이터마다 가지는 Unique Key라고 기억하면 되겠다..

SELECT * FROM USERS WHERE ID = 'human'

뭐 이런건 어찌 조회하나?
 
해보자..

> db.test.find({"user":"blahblah"})
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "user" : "blahblah", "type" : "human", "age" : 30, "tune" : "no" }
>

 

조회 조건에도 역시 JSON  타입을 사용해서 조회를 해야한다.

find 이외에도 findOne 라는 메소드가 있으니 확인해보자.


수정.
user:blahblah 를 가지는 사용자에 대해

type을 frog로 변경해보자..

> db.test.update(
... {"user":"blahblah"},
... {"$set" : { "type":"frog" } }
... )
> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "age" : 30, "tune" : "no", "type" : "frog", "user" : "blahblah" }
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }
>

 
update 구문을 보면
첫 파라메타로 검색 조건
다음 파라메타로 제한자($set)와 변경할 값을 설정한다.
 

age 수치의 증가.
 
테스트 하다가 깜짝 놀랬는데.. 놀라고 나서 생각해보니 당연하다..

> db.test.update(
... {"user":"blahblah"},
... {"$inc" : { "age":30 } }
... )
> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "age" : 60, "tune" : "no", "type" : "frog", "user" : "blahblah" }
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }
> db.test.update(
... {"user":"blahblah"},
... {"$inc" : { "age":1 } }
... )
> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "age" : 61, "tune" : "no", "type" : "frog", "user" : "blahblah" }
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }



윗줄에서 inc 제한자를 사용하여 30.. 을 설정했는데..

30이 증가되어버렸다.. 원 값인 30을 입력하는건가 하고 생각해서 입력한 값이었는데 60이 되어버렸다 -_- ... 

그래서 다시 1로 테스트 해보니 30 -> 60 -> 61 .. 로 변하는 값을 확인할수 있엇다.


삭제 해보자!

> db.test.find()
{ "_id" : ObjectId("4f18334ee18f4804da05227f"), "age" : 61, "tune" : "no", "type" : "frog", "user" : "blahblah" }
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }
> db.test.remove({"age":61})
> db.test.find()
{ "_id" : ObjectId("4f18344ee18f4804da052280"), "user" : "blahblah2", "type" : "alien", "age" : 26, "tune" : "yes" }
> db.test.remove()
> db.test.find()



사용법은 검색이나, 수정에 사용했던 방법과 유사한거 같다.. 

사용 방법은 위 로그를 참조..




이제 MongoDB가 좀 익숙해 질려한다...




현재 O'REILLY사의 "MongoDB 완벽 가이드"를 보면서

학습식의 글을 작성중인데..

글을 남기는 이유는 강의도 아니고 필요에 의해 검색하기 위함이다.

어려운 질의는 늦게 늦게 답변이 달릴수도 있으니 ! 양해 바랍니다 ㅡ.ㅜ;

 


 
 
 

+ Recent posts