본문 바로가기
사이드 프로젝트/뉴스구독 웹서비스

AWS what's new 뉴스레터1 | python에서 mongoDB 사용하기

by 카프리썬_ 2021. 4. 16.
728x90
728x90

일단 현재는 RSS로 긁어온 데이터들을 출력해논 상태이다. (python의 feedparser이용)

이제 이 데이터들을 mongoDB에 저장해볼까 한다.


MongoDB설치하기

python에서 사용할 수 있는 pymongo라는 패키지가 있다.

이를 위해선 로컬환경에 mongoDB가 설치되어 있어야한다.

mongoDB 다운로드 링크

환경변수 설정하기

몽고디비 설치한 위치 경로 복사 (나의 경우는 이곳)

C:\Program Files\MongoDB\Server\4.4\bin

시스템 환경변수에 위의 경로 추가

MongoDB 실행하기 

이제 local에 mongodb 서버가 시작되고, python에서는 여기에 연결하면 된다.


여기까지 mongoDB사용을 위한 환경설정상태였다. 이제는 python에서 몽고디비랑 연결하면 된다.

 

 

 

Python에서 연결하기 

pip instll pymongo <--- 패키지 설치하기

 

from pymongo import MongoClient <-- 임포트하기 

MongoDB 데이터베이스 확인하기 

mysql에서 show databases하는 것처럼 mongodb에서도 현재 데이터베이스를 확인해볼 수 있다.

기본데이터베이스로 admin, config, local확인

그리고 python에서도 확인해볼 수 있었다.

print(mongo.list_database_names())
결과 --> ['admin', 'config', 'local']

이제 본격적으로 aws 크롤링데이터들을 몽고디비에 넣을 차례이다. 

mysql에서도 데이터베이스를 만들고 테이블을 만드는 것 처럼 

mongoDB에서도 데이터베이스를 만들고, Collection을 만들면 된다! 

출처 https://bioinformaticsandme.tistory.com/284

 

나같은 경우는 testdb라는 데이터베이스를 만들고, aws라는 collection을 만들었다. 

mysql에서랑 비슷하다 

mongo_client = connect_DB(host,port)
database = mongo_client.get_database('mydb')
collection =database.get_collection('aws')

INSERT 

그냥 아래처럼 insert문을 수행하면 된다. 이때 document는 dict형태이다. 

for document in document_list:
        collection.insert_one(document)

FIND

mysql에서 select처럼 find로 데이터를 가져와서 볼 수 있다. 

result = collection.find()
for i in result:
     print(i)

DELTE / (REMOVE) / DROP

이것도 mysql이랑 비슷해서 익히기 쉬웠따.

remove는 데이터들을 삭제할때 사용하고, 

delete는 조건을 가진 데이터들을 삭제할때,drop은 컬렉션을 삭제하는 것이다. 

 

근데 mongodb3.2(?)이후부터는 remove 대신 delete사용을 권장하는 것 같다.  

그럼 테이블은 남겨두고 데이터들만 전체 삭제하려고 할땐? 

collection.delete_many({})

조건에 해당하는 데이터를 삭제하려고 할땐? 이러면 해당하는 도큐먼트 하나만 삭제된다

collection.delete_one({"index":"null"}) 

반면에 조건에 해당하는 모든 데이터들을 한번에 여러개 삭제하고 싶을땐?

collection.delete_many({"index":"null"}) 

 

아마 rollback이 안되서 삭제하는데 조심?하도록 이런식으로 만들어둔게 아닐까

 

데이터 확인

중간에 어이없는 에러가 있었지만 해결하고 성공!

2021.04.16 - [mongodb] pymongo.errors.DuplicateKeyError

만약에 코드가 더 복잡해진다면 db를 다루는 부분은 따로 빼놔야 할 것 같다

그렇다면 여기를 참고하길 popcorn16.tistory.com/122

 

출처

mongodb설치하기 somjang.tistory.com/entry/WindowsMongodb%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0ver-420

 

[Windows]Mongodb설치하고 환경변수 설정하기(ver 4.2.0)

1. 설치파일 다운로드 받기 Download Center: Community Server Download MongoDB Community Server, the most popular non-relational database built to address the needs of modern applications. www.mongodb..

somjang.tistory.com

mongodb 조작하기

somjang.tistory.com/entry/MongoDB-Python%EA%B3%BC-Pymongo%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0-%EC%B6%9C%EB%A0%A5%ED%95%B4%EB%B3%B4%EA%B8%B0

 

[MongoDB] Python과 Pymongo를 활용하여 데이터 추가하고 출력해보기!

오늘은 python과 pymongo를 통해 mongoDB에 데이터를 추가하고 추가한 데이터를 출력해보고자 합니다. 1. 실행환경 - OS : Mac OS Catalina - IDE : Pycharm 2. mongoDB 설치하기 먼저 python과 pymongo를 활용하..

somjang.tistory.com

pycoding.tistory.com/entry/python-mongoDB%EB%AA%BD%EA%B3%A0DB%EA%B8%B0%EC%B4%88-%EC%A0%91%EC%86%8D-%EC%83%9D%EC%84%B1-%EA%B2%80%EC%83%89-%EC%82%AD%EC%A0%9C-insert-find-update

 

python mongoDB(몽고DB)기초 - 접속, 생성, 검색, 삭제 (insert, find, update)

파이썬에서 몽고db를 사용하기 위해서는 라이브러리 설치가 필요합니다. pip install pymongo 라이브러리 설치가 완료되었으면 간단한 형태의 딕셔너리형 자료를 추가해봅니다. 참고로 몽고db에 인서

pycoding.tistory.com

firework-ham.tistory.com/68

 

[python] pymongo 활용 MongoDB CRUD

pymongo로 python에서 mongodb와 연동하는 방법을 정리합니다. 1. pymongo 설치 python에서 pymongo를 활용하여 몽고 DB에 있는 정보를 가져오거나 추가할 수 있습니다. pymongo를 아래 명령어로 설치하세요. pip.

firework-ham.tistory.com

 

728x90
반응형