반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

MongoDB 2일차 - Python과 연결 MongoClient / INSERT, SELECT, DELETE, UPDATE 본문

데이터베이스/MongoDB

MongoDB 2일차 - Python과 연결 MongoClient / INSERT, SELECT, DELETE, UPDATE

비전공개미 2022. 9. 15. 16:59
반응형
SMALL
#TestInsert.py

import time
from pymongo import MongoClient
import sys

try:
    print('몽고테스트')
    #pip install pymongo
    client = MongoClient('mongodb://localhost:27017/')
    print(client.list_database_names())
    print()

    db = client['test']
    data_author = input('이름입력 > ')
    data_title = input('제목입력 > ')
    data_kind = input('종류입력 > ')

    data = {
        'author': data_author,
        'title': data_title,
        'kind': data_kind
    }

    db.posts.insert_one(data)
    #python - insert_one // mongodb - insertOne
    print('몽고디비 저장 성공')
    print('-' * 70)

    time.sleep(1)
    print('이름\t 제목\t 구분\t')
    #3초후 데이터전체출력 for반복문 find()함수
    for d in db['posts'].find():
        print(d['author'], d['title'], d['kind'])

    print('-' * 70)
    cnt = db['posts'].estimated_document_count()
    print('전체데이터갯수 :', cnt,'개')
   
except Exception as error:
    print('에러이유 :', error)
# 입력
이름입력 > 홍길동
제목입력 > MySQL
종류입력 > Database

# 출력
몽고디비 저장 성공
----------------------------------------------------------------------    
이름     제목    구분
홍길동 MySQL Database

 

-----------------------------------------------------------------------------------------------------------------------------------

 

#TestSelect.py

import time
from pymongo import MongoClient
import sys

try:
    print('몽고테스트')
    #pip install pymongo
    client = MongoClient('mongodb://localhost:27017/')
    print(client.list_database_names())
    print()

    db = client['test']
    
    #3초후 데이터전체출력 for반복문 find()함수
    for d in db['posts'].find():
        print(d['author'], d['title'], d['kind'])

    print('-' * 70)
    cnt = db['posts'].estimated_document_count()
    print('전체데이터갯수 :', cnt,'개')

    print('저자이름 검색처리')
    time.sleep(2)
    my = input('저자이름입력 > ')
    search = db['posts'].count_documents({'author': my})
    if search <= 0:
        print(my, '검색결과가 없습니다')
        exit(-1)  #sys.exit()
    else:
        result = db['posts'].find({'author': my})
        for d in result:
            print(d['author'], d['title'], d['kind'])
    
except Exception as error:
    print('에러이유 :', error)
홍길동 MySQL Database
성춘향 Python Programming
임꺽정 MongoDB Database
박지성 html Hyper text markup language
안정환 C 프로그래밍
김철수 db 데이터베이스
김영희 php 프로그래밍
----------------------------------------------------------------------    
전체데이터갯수 : 7 개
저자이름 검색처리
# 입력
저자이름입력 > 홍길동  
# 출력
홍길동 MySQL Database

 

-----------------------------------------------------------------------------------------------------------------------------------

 

#TestDelete.py

import time
from pymongo import MongoClient
import sys

try:
    print('몽고테스트')
    #pip install pymongo
    client = MongoClient('mongodb://localhost:27017/')
    print(client.list_database_names())
    print()

    db = client['test']

    time.sleep(1)
    my = input('삭제데이터 이름입력 > ')
    search = db['posts'].count_documents({'author': my})
    if search <= 0:
        print(my, '삭제대상 데이터가 없습니다')
        sys.exit()
    else:
        result = db['posts'].delete_one({'author': my})
        print(my, '데이터를 삭제성공 했습니다.\n')
        
        #남은인원 출력
        for d in db['posts'].find():
            print(d)
    
except Exception as error:
    print('에러이유 :', error)
# 입력
삭제데이터 이름입력 > 김철수

#출력
김철수 데이터를 삭제성공 했습니다.

{'_id': ObjectId('632290331a42ea526a6b69d7'), 'author': '홍길동', 'title': 'MySQL', 'kind': 'Database'}
{'_id': ObjectId('632290a1c64f74cbbaeafc76'), 'author': '성춘향', 'title': 'Python', 'kind': 'Programming'}
{'_id': ObjectId('632292109c31db1406e8ca6b'), 'author': '임꺽정', 'title': 'MongoDB', 'kind': 'Database'}
{'_id': ObjectId('6322a4d02a4a4ee80dc96adf'), 'author': '박지성', 'title': 'html', 'kind': 'Hyper text markup language'}
{'_id': ObjectId('6322a997cd05a0624d2e3be2'), 'author': '안정환', 'title': 'C', 'kind': '프로그래밍'}
{'_id': ObjectId('6322b27db2aff85ff571ed4b'), 'author': '김영희', 'title': 'php', 'kind': '프로그래밍'}

 

-----------------------------------------------------------------------------------------------------------------------------------

 

#TestUpdate.py

import time
from pymongo import MongoClient

try:
    print('몽고테스트')
    #pip install pymongo
    client = MongoClient('mongodb://localhost:27017/')
    db = client['test']
    
    my = input('수정데이터 이름입력 > ')
    search = db.posts.find_one({'author': my})

    if search == None:
        print(my, '수정대상 데이터가 없습니다')
        exit(-1)
    
    # data_author = input('수정이름입력 > ')
    data_title = input('수정제목입력 > ')
    data_kind = input('수정종류입력 > ')

    #db.guest.updateOne( {name: 'goo'}, {$set:{title: "공조2"}} ) 
    db.posts.update_one(
        {'author': my}, 
        {'$set': {'title': data_title, 'kind': data_kind}}
    )
    print('몽고디비 수정 성공\n')

    
except Exception as error:
    print('에러이유 :', error)
# 입력
수정데이터 이름입력 > 안정환
수정제목입력 > C++
수정종류입력 > Programming

# 출력
몽고디비 수정 성공
반응형
LIST
Comments