티스토리 뷰

MongoDB 설치


  1. https://www.mongodb.org/downloads 로 접속한다.

다운로드를 받는다.



  1. C:\ 아래에 압축을 푼다.



  1. C:\ 아래에 Database 저장소를 만들고, db폴더를 만든다.




  1. Cmd창을 열어 다음과 같이 입력한다.

Windows 보안 경고창이 뜨면, 엑세스 허용을 클릭한다.



  1. Cmd창을 하나 더 띄워서, 마지막 빨간 박스를 제외하고 위에 입력한대로 그대로 작성한다. 마지막 빨간 박스 → mongo.exe라고 입력한다.


  1. http://robomongo.org  접속하여 RoboMongo 를 다운받고 실행한다.







MongoDB 이해


몽고DB는 데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되는, 문서 모델을 기반으로 하는 NoSQL 데이터베이스이다.

MongoDB를 쓰기 위해서는 Database → Collection → Document 순서로 만든다.


#Database ?

  • 컬렉션의 집합이다.

  • 흔히 도메인이라고 부르는 것들이 데이터베이스에 해당된다.

#Collection ?

  • 몽고DB는 컬렉션을 사용해 데이터를 하나로 묶는다.

  • 용도가 같거나 유사한 문서(Document)의 집합을 말한다.

#Document ?

  • 문서란 몽고DB 데이터베이스 내에 있는 한 가지 데이터 실체를 나타낸다.

  • 정보의 집합이다. ( join X )



# 관계형 데이터베이스와 MongoDB의 논리적 용어 비교



#Mongo Shell을 이용해 Database 만들기


  1. 변수 활용하기

blog라고 하는 db의, blog라고 하는 collection에 testData가 들어감.



  1. 변수 활용하지 않고 바로 넣기

“_id” 는 고유한 키 값이다.




RoboMongo에 들어가서 보면,

이렇게 나와있는 것을 확인할 수 있다.


# document insert 해보기

Blog의 오른쪽 마우스를 클릭해 insert document를 선택한후, 아래와 같이 입력해본다.


그리고 save를 누르면,


이렇게 입력이 된 것을 확인할 수 있다.


#document delete 해보기

Mongo Shell을 이용해 아래와 같이 입력하면 전체 다큐먼트를 다 지울 수 있다.


한개씩 지우려면, Robomongo에서

이런식으로 써주고 Ctrl+Enter 치면 된다.





#document update 해보기

Mongo Shell에서 먼저 데이터를 입력해준다.


Update를 해주려면, 아래와같이 입력해준다.



# $set 제한자

  • 필드 추가(필드가 없을 경우) 및 필드 값 수정(필드가 존재할 경우)


# $push 제한자

  • 기본적으로 $set과 동일하지만, 계속 값이 추가된다.

  • 나중에 mapReduce를 쓰게 되면 태그가 몇번쓰였는지 알수있다.


<실습>

> use blog

switched to db blog

> var post = {

... "subject":"테스트입니다.",

... "content":"내용입니다...."

... }

> post

{ "subject" : "테스트입니다.", "content" : "내용입니다...." }

> db.post.insert(post);

WriteResult({ "nInserted" : 1 })

> db.post.findOne({"subject":"테스트입니다."});

{

       "_id" : ObjectId("574be6168574db5ac77dc934"),

       "subject" : "테스트입니다.",

       "content" : "내용입니다...."

}

> var reply = {

... "author":"Guest",

... "content":"Gooooood~~~~~"

... }

> reply

{ "author" : "Guest", "content" : "Gooooood~~~~~" }

> db.post.update({"subject": "테스트입니다."},{"$push":{"replies": {"author":"Gu

est","content":"Baaaaaaaaaaad~~~~" }} })

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.post.update({"subject":"테스트입니다."},{"$push":{"replies":reply} })

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.post.findOne({})

{

       "_id" : ObjectId("574be6168574db5ac77dc934"),

       "subject" : "테스트입니다.",

       "content" : "내용입니다....",

       "replies" : [

               {

                       "author" : "Guest",

                       "content" : "Baaaaaaaaaaad~~~~"

               },

               {

                       "author" : "Guest",

                       "content" : "Gooooood~~~~~"

               }

       ]

}




# $pull 제한자 (과제)

  • $push와 반대로, 요소를 제거한다.





'프로그래밍 > 빅데이터' 카테고리의 다른 글

[Mongo DB] MongoDB + Oracle 연동  (0) 2016.06.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함