몽고 DB 와 파이썬

2024. 12. 10. 15:37LLM(Large Language Model)의 기초

1. 몽고 DB와 파이썬(Python)

1) 몽고 db 사이트 들어가서 로그인을 한다.
2) 파이썬과 몽고 db와 연결을 한다

1) 비밀번호가 까먹었을 시, connect를 눌러서 들어간다.
 

2) Drivers를 클릭한다

 

3)url을 복사하여 준다

 

4)왼쪽1번 database access 클릭 후, 2번에 edit를 클릭한다.

 

5) copy를 해준뒤, 2번 update user 버튼을 눌러줘야 업데이트가 된다.

 
1. 파이 몽고 설치해 준다

!pip install pymongo

 
2.

from pymongo import MongoClient
#connect에 drivers에 있다
#<db_password에 패스워드 입력 필요
#
#url = 'mongodb+srv://bablove127:<db_password>@cluster0.kkabv.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0'
#url='mongodb+srv://twitter:fdsfewerrrr@cluster0.h11kj.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0'
url='mongodb+srv://bablove127:<생성한 비밀번호 붙히기>@cluster0.kkabv.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0'
client = MongoClient(url)
print(client)

 
3. 데이터베이스를 생성한다.

database = client['kdt']
collection = database['user']

 
4. 데이터를 추가한다.

#데이터 추가하기
user_insert={"userid":"apple", "name":"김사과","age":20}
result = collection.insert_one(user_insert)
print(f'입력된데이터 id: {result.inserted_id}')
-->
입력된데이터 id: 675796ffd4f97264b2eb161e

 
5. 여러 데이터를 넣어보자

users_insert = [
    {"userid":"banana", "name":"반하나","age":20},
    {"userid":"orange", "name":"오렌지","age":25},
    {"userid":"melon", "name":"이메론","age":22}
]
result = collection.insert_many(users_insert)
print(f'입력된 id: {result.inserted_ids}')
-->
입력된 id: [ObjectId('675797a9d4f97264b2eb161f'), ObjectId('675797a9d4f97264b2eb1620'), ObjectId('675797a9d4f97264b2eb1621')]

 
6. 데이터 찾기

user_find = {"userid":"apple"}
result = collection.find_one(user_find)
print(f'데이터: {result}')
-->
데이터: {'_id': ObjectId('675796ffd4f97264b2eb161e'), 'userid': 'apple', 'name': '김사과', 'age': 20}

 
7. 모든 데이터 출력

result = collection.find({})
for data in result:
  print(data)
  -->
{'_id': ObjectId('675796ffd4f97264b2eb161e'), 'userid': 'apple', 'name': '김사과', 'age': 20}
{'_id': ObjectId('675797a9d4f97264b2eb161f'), 'userid': 'banana', 'name': '반하나', 'age': 20}
{'_id': ObjectId('675797a9d4f97264b2eb1620'), 'userid': 'orange', 'name': '오렌지', 'age': 25}
{'_id': ObjectId('675797a9d4f97264b2eb1621'), 'userid': 'melon', 'name': '이메론', 'age': 22}

 
8. 데이터 수정하기

#데이터 수정하기
user_update = {'userid':'apple'}
new_value = {'$set':{'age':30}}
result = collection.update_one(user_update, new_value)
print(f'데이터: {result}')
-->
데이터: UpdateResult({'n': 1, 'electionId': ObjectId('7fffffff0000000000000043'), 'opTime': {'ts': Timestamp(1733796455, 1), 't': 67}, 'nModified': 1, 'ok': 1.0, '$clusterTime': {'clusterTime': Timestamp(1733796455, 1), 'signature': {'hash': b'\xac\xda\x85\x08\xc3\xea\xdf\x15Y\xe2\xf1\x17@Q\xc4\x10k\xdf\xe5[', 'keyId': 7415643898518700038}}, 'operationTime': Timestamp(1733796455, 1), 'updatedExisting': True}, acknowledged=True)

 
9. 데이터 조회하기

#데이터 조회하기
user_find = {'userid':'apple'}
result = collection.find_one(user_find)
print(f'데이터: {result}')

result = collection.find({})
for data in result:
    print(data)
-->
데이터: {'_id': ObjectId('675796ffd4f97264b2eb161e'), 'userid': 'apple', 'name': '김사과', 'age': 30}
{'_id': ObjectId('675796ffd4f97264b2eb161e'), 'userid': 'apple', 'name': '김사과', 'age': 30}
{'_id': ObjectId('675797a9d4f97264b2eb161f'), 'userid': 'banana', 'name': '반하나', 'age': 20}
{'_id': ObjectId('675797a9d4f97264b2eb1620'), 'userid': 'orange', 'name': '오렌지', 'age': 25}
{'_id': ObjectId('675797a9d4f97264b2eb1621'), 'userid': 'melon', 'name': '이메론', 'age': 22}

 
10. 데이터 삭제하기

#apple 데이터 삭제하기
user_delete = {'userid':'apple'}
result = collection.delete_one(user_delete)
print(f'데이터: {result}')
-->
데이터: DeleteResult({'n': 1, 'electionId': ObjectId('7fffffff0000000000000043'), 'opTime': {'ts': Timestamp(1733796581, 7), 't': 67}, 'ok': 1.0, '$clusterTime': {'clusterTime': Timestamp(1733796581, 7), 'signature': {'hash': b'\xcaQ\x1b\xa0p\xec\xdbU\xd6r\xcb\x130I\xcc_%j~R', 'keyId': 7415643898518700038}}, 'operationTime': Timestamp(1733796581, 7)}, acknowledged=True)

 
11. 삭제 후 조회하기

#데이터 삭제 후 조회하기
user_find = {'userid':'apple'}
result = collection.find_one(user_find)
print(f'데이터: {result}')
-->
데이터: None
728x90
LIST

'LLM(Large Language Model)의 기초' 카테고리의 다른 글

FAST API  (8) 2024.12.13
Gradio  (3) 2024.12.11
프롬프트 엔지니어링  (8) 2024.12.11
프롬프트 엔지니어링  (12) 2024.12.10
생성형 AI  (0) 2024.12.10