2 minute read

MongoDB를 시작해보자

  • Mongo DB 사이트로 간다. 1
  • 사이트에서 Sign in을 눌러서 회원 가입을 시도


  • 필자는 구글 아이디로 로그인 했다.
  • 그럼 바로 다음 페이지로 아래와 같은 화면이 나온다. 2
  • 아틀라스에 온걸 환영한다는데, 아틀라스는 MongoDB를 제어하는 Web 서비스를 의미한다.
  • 어떤 목적으로 사용하는지 체크


  • MongoDB 사용을 위한 멤버쉽 가입창이 나온다.
  • MongoDB의 장점 중 하나는 바로 무료로 사용가능하다는 것
  • 따라서 우리는 Free 멤버쉽으로 사용한다. 3


  • 다음페이지에서는 어떤 방식으로 DB에 접근할 것인지 정한다.
  • 우리는 ID와 PASSWORD를 사용하여 DB에 접근토록 할 것이다.
  • 이곳에 기입한 ID와 PASSWORD는 DB 접속에 꼭 필요하므로 잘 저장해두어야한다. 4


  • 접근 가능한 IP도 설정 가능하다.
  • 보통 자동으로 현재 IP가 등록되므로 확인 후 개설한다. 5


  • 개설하고나면 아틀라스에서 자신의 DB를 확인 할 수 있다.
  • 사진은 이미 여러가지 테스트를 거친 후 찍은 것이라 다른 수 있다.
  • 접근 URL를 받고 싶다면 Connect를 눌러서 원하는 방식에 따라 URL를 받으면 된다.
  • DB상태를 보고 싶다면 View Monitoring을 눌러서 사용량을 확인할 수 있다.
  • DB내부를 확인하거나 편집하려고 한다면 Browe Collections를 눌러서 편집 할 수 있다.

6


Python 으로 MongoDB를 쓰는 방법은?

  • Python으로 만든 프로그램에서도 MongoDB가 사용가능하다고 한다.
  • 필자는 원래 자바스크립트에서 MongoDB를 사용했는데, 이번기회에 파이썬으로도 해보려고 한다.
  • 우선 다음과 pip로 pymongo를 설치한다.
     pip install pymongo
    

DB 연결 방법

  • 연결을 위해서는 pymongo의 MongoClient 함수를 가지고 온다.
from pymongo import MongoClient
  • 다음과 같이 입력하면 연결이 되는데, 안에 들어가는 URL은 아틀라스에서 받아올 수 있다.
mongodb_URI = "mongodb+srv://ID:PASSWORD@클러스터이름..."
client = MongoClient(mongodb_URI)

print(client.list_database_names())
  • 이제 client라는 변수로 자신의 MongoDB가 연결되었다.
  • DB도 연결해보자.
db = client['내DB이름']
  • 이렇게 하면 MongoDB에 있는 자신의 DB를 사용할 수 있게 된다.
  • 하나의 collection을 만들어 간단한 Document하나를 생성해보자.
# DB에서 my_collection이라는 collection에 접근
# 존재하지 않는다면 생성한다.

my_collection = dp.my_collection

# 시간기록을 위해 datetime을 사용한다.
import datetime

dct = {"author" : "Kim",
          "text" : "Hello MongoDB",
          "date" : datetime.datetime.utcnow()
        }

document_id = my_collection.insert_one(dct).inserted_id
print(document_id)
#642ef0dc8fb4fad60f028d5c
  • 아틀라스에서 결과를 확인하자 7
  • 잘 생성된 것을 확인 할 수 있다.
  • 위와 같이 python의 딕셔너리 형태의 자료형으로 저장이 가능하다.
  • 생성된 다큐멘트의 id는 자동으로 부여된다.

Search 해보자

  • 필자가 posts라는 collection에 여러 다큐멘트를 생성해보았다.
  • 이제 이 collection에서 author가 Kim 인 다큐멘트를 찾아보자. ```python

# posts 콜렉션에 접근 posts = db.posts

import pprint # 출력을 이쁘게 하기 위한 pprint

pprint.pprint(posts.find_one({“author” : “Kim”}))

 ![9](https://user-images.githubusercontent.com/105574034/230439841-556691c8-5d08-485f-b4e2-51d9f1d1ea77.PNG)
 - 이쁘게 잘 찾아지는 것을 알수있다!
 - 이걸 보면 하나만 찾아오는 걸 알수있는데 가장 위에 있는 다큐멘트를 뽑아온것 같다.
 - 그럼 반복문을 사용하면 여러개를 찾을 수 있을 것 같다.
 - 반복문을 사용해 author가 Lee 인 다큐멘트를 찾아보자.

```python
for post in posts.find({"author":"Lee"}):
    pprint.pprint(post)

10

  • 예상했던 것 처럼 전부다 찾아온 것을 알 수 있다.

다음 포스팅에서는 삭제하고 수정하는 것을 해보자


😺 오타나 논리적 오류 지적은 언제든지 환영합니다!😺   
항상 읽어주셔서 감사합니다~ 🙏

Leave a comment