[Python] MongoClient(), client["a"], Faker(), .insert_one(), .find_one()

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

오늘의 코드

1. MongoDB 데이터베이스와 컬렉션 생성

2. 가짜 데이터 생성 및 저장

3. 특정 조건으로 데이터 검색

from pymongo import MongoClient
from faker import Faker

client = MongoClient('mongodb://localhost:27017/')

db = client['mydatabase_faker']

collection = db['people']

fake = Faker()

for _ in range(20):
    person = {
        'name': fake.name(),
        'address': fake.address(),
        'email': fake.email(),
        'phone': fake.phone_number()
    }
    collection.insert_one(person)
    
print("가짜 데이터가 성공적으로 입력되었습니다.")

result = collection.find_one({"author":"john"})
print(f"검색된 문서: {result}")

 


MongoClient()

MongoDB 데이터베이스에 연결

mongodb://localhost:27017/ : MongoDB 서버가 실행 중인 로컬 컴퓨터에 기본 포트로 연결

로컬 서버가 아니라 원격 서버를 이용하려면, URL을 mongodb://<remote-ip>:<port>/ 형식으로 변경

 


client["a"]

MongoDB에서 a라는 데이터베이스를 선택

a가 존재하지 않으면, 처음 데이터를 저장할 때 자동으로 생성됨

객체로 저장하여 선택된 MongoDB 데이터베이스를 조작할 수 있음

 


데이터베이스['컬렉션']

데이터베이스 내에 있는 컬렉션을 선택

컬렉션 : MongoDB에서 데이터를 단위

 


Faker()

가짜 데이터를 생성

fake.name() : 랜덤한 이름 생성

fake.address() : 랜덤한 주소 생성

fake.email() : 랜덤한 이메일 생성

fake.phone_number() : 랜덤한 전화번호 생성

로케일을 설정해 다른 국가에 맞는 데이터를 생성할 수도 있음

 


for _ in range(숫자)

값을 무시하고 반복문을 단지 반복

반복 변수 이름을 _로 설정하여, 변수 값에 신경 쓰지 않음을 의미

반복문 안에서 변수 값을 사용하지 않는 경우 사용

 


 

.insert_one()

MongoDB 컬렉션에 하나의 데이터 항목(문서)을 추가

삽입하려는 데이터는 보통 딕셔너리 형태로 작성됨

하나의 문서만 추가할 수 있어서 여러 개의 문서를 추가하고 싶다면 insert_many()를 사용

삽입 후 문서의 ID는 자동으로 생성

 


.find_one()

MongoDB 컬렉션에 있는 문서를 하나 찾아서 반환

조건을 입력할 경우 조건에 맞는 첫 번째 문서만 가져옴

조건에 맞는 문서가 없다면 None 반환

find()는 여러 문서를 찾을 수 있지만 찾은 데이터 값 자체를 이용하려면 for문으로 데이터 추출 과정 필요

 


오늘의 코드

1. MongoDB 데이터베이스와 컬렉션 생성

2. 가짜 데이터 생성 및 저장

3. 특정 조건으로 데이터 검색

from pymongo import MongoClient
from faker import Faker

client = MongoClient('mongodb://localhost:27017/')

db = client['mydatabase_faker']

collection = db['people']

fake = Faker()

for _ in range(20):
    person = {
        'name': fake.name(),
        'address': fake.address(),
        'email': fake.email(),
        'phone': fake.phone_number()
    }
    collection.insert_one(person)
    
print("가짜 데이터가 성공적으로 입력되었습니다.")

result = collection.find_one({})
print(f"검색된 문서: {result}")

오늘의 코드 설명

1. MongoDB 데이터베이스와 컬렉션 생성

client = MongoClient('mongodb://localhost:27017/')

로컬 컴퓨터에서 실행중인 MongoDB 데이터베이스에 연결해서 객체 client를 생성

db = client['mydatabase_faker']

mydatabase_faker라는 이름의 데이터베이스를 db에 저장

mydatabase_faker라는 이름의 데이터베이스가 없으면 처음 데이터를 저장할 때 자동 생성됨

collection = db['people']

데이터베이스 mydatabase_faker에서 컬렉션 people을 선택해서 collection에 저장

2. 가짜 데이터 생성 및 저장

fake = Faker()

가짜 데이터를 생성하는 객체 fake를 생성

for _ in range(20):

반복문을 20번 실행

collection.insert_one(person)

컬렉션 people에 딕셔너리 person을 추가

3. 특정 조건으로 데이터 검색

result = collection.find_one({})

컬렉션 people에서 첫 번째 문서를 result에 저장