1. Mongo DB 데이터 베이스 생성
전 포스트에서 Mongo DB와 연결했던 코드와 크게 다르지 않습니다.
from pymongo import MongoClient
client = MongoClient("mongodb://localhost:27017")
db_client = client['Test_db']
print(client.list_database_names())
그러나 결과를 확인해 보면 Test_db라는 DB가 생성되지 않았습니다.
Mongo DB에서는 내용이 있어야 DB가 생성되기 때문입니다.
따라서 collection과 record를 만들어 줍니다.
col_client = db_client['Test_col']
record_1 = {
'student_id' : '213835',
'name' : 'Kim',
'grade' : 'A'
}
record_2 = {
'student_id' : '312683',
'name' : 'Ryu',
'grade' : 'B'
}
col_client.insert_many([record_1,record_2])
임의의 collection과 record를 생성하고 생성할 DB에 record를 삽입해줍니다.
위 코드를 주석 처리한 후 다음 명령어로 DB 생성을 확인합니다.
print(client.list_database_names())
DB가 정상적으로 생성이 되었습니다.
DB에서 collection이 생성되었는지 조회는 다음 명령어로 확인할 수 있습니다.
print(db_client.list_collection_names())
정상적으로 생성되었습니다.
1-1. Record 조회
record를 조회해 보겠습니다.
all_record = col_client.find()
for i in all_record:
print(i)
정상적으로 생성된것을 확인할 수 있습니다.
1-2. Record 수정
record를 업데이트 하려면 다음과 같은 명령어를 입력합니다.
col_client.update_one({'name':'Ryu'},{'$set':{'name':'Baek'}})
만약 $set을 붙이지 않으면 이름을 제외한 다른 데이터는 삭제 되니 항상 $set을 붙여주도록 합시다.
만약 제일 위에 있는 데이터가 아니라 모든 이름이 Ryu인 사람을 Baek으로 바꾸고 싶다면
updateMany를 사용하시면 됩니다.
1-3. Record 삭제
record를 삭제하고 싶다면 다음과 같은 명령어를 입력합니다.
col_client.delete_one({'name':'Baek'})
정상적으로 삭제 되었습니다.
만약 name이 Baek인 모든 데이터를 삭제하고 싶다면 delete 명령어를 사용하시면 됩니다.
1-4. DataFrame으로 Record 확인하기
Record를 DataFrame으로 변환시켜 확인합니다.
import pandas as pd
all_record = col_client.find()
record_df = pd.DataFrame(all_record)
print(record_df)
조금 더 편하게 확인할 수 있습니다.
2. Mongo DB에 Json 파일 업로드
2-1. Collection을 Json으로 변환
생성한 Record를 Json 파일로 변환하겠습니다.
from bson.json_util import dumps
json_record=dumps(all_record)
print(json_record)
json 파일을 저장합니다.
import json
with open('save_json.json','w') as f:
f.write(json_record)
2-2. 저장한 Json 파일을 데이터 베이스에 삽입하기
새로운 컬렉션을 생성하고 json 파일을 불러옵니다.
col_client_2= db_client['Test_col_2']
with open('save_json.json', 'r') as f:
read_json = json.load(f)
불러온 json 파일의 필요한 값만 추출합니다.
read_json= read_json[0] # dict만 가져옴
read_json.pop('_id') # id 제외
이제 컬렉션에 데이터를 삽입하고 결과를 확인합니다.
col_client_2.insert_many([read_json])
all_record_2 = col_client_2.find()
for i in all_record_2:
print(i)
정상적으로 삽입 된 것을 확인할 수 있습니다.
'머신러닝' 카테고리의 다른 글
| [파이썬] Hadoop과 Spark를 이용한 빅데이터 처리 (0) | 2026.03.25 |
|---|---|
| [파이썬] MLP를 활용한 미세먼지 예측 알고리즘 (0) | 2026.03.16 |
| [파이썬] Mongo DB 설치와 파이썬 연동 (0) | 2026.03.03 |
| [파이썬] Ridge,Lasso Regression and Confusion matrix (21) | 2023.11.28 |
| [파이썬] 딥러닝 BGD_SGD (23) | 2023.11.20 |