자 이제 몽고 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 완벽 가이드"를 보면서

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

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

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

 


 
 
 
MongoDB 설치

홈페이지 : http://www.mongodb.org/
 
다운로드 페이지 : http://www.mongodb.org/downloads

Data 폴더 : /data/db

mkdir -p /data/db

다운로드 페이지에서 받은 파일은
/data/mongodb-osx-x86_64-2.0.2
여기에 풀었다..

MongoDB의 실행은

$bin/mongod


db 경로를 설정하려면
 

$bin/mongod --dbpath ~/



자 실행해보자

MongoDB가 설치된 경로

MongoDB 구동



서비스 중인 포트로 접속해보면 1000을 더하면 진단 툴에 접속할수 있을을 알리는 메시지를 노출한다.

진단툴의 모습 주소는 localhost:28017이다.







MongoDB  쉘 실행하기
$bin/mongo

쉘의 기본은 자바 스크립트의 기본을 그대로 사용가능.

변수를 할당한다거나. 수학 연산, 함수 생성등이 가능.



> use framework
switched to db framework
> db
framework


사용할 DB를 설정(use)하고 현재 DB를 확인(db)하는 명령.

글이 길어지니

MongoDB 내에서 CRUD는 2회차로! 미룸!!

 





+ Recent posts