노란색 : key 분홍색: value
분홍색으로 표시된 { } 전체가 value
둘 다 JSON 형태임
Key, value 단어는 Key, value를 가지고 있는 데이터 모델에서 모두 사용 가능
Unique key
사전 준비
:pymogo 패키지가 필요 + URI이용한 작업을 하기 위해서 dnspython 패키지 필요
from pymongo import MongoClient
HOST = 'cluster어저꾸mongodb.net'
USER = '유저이름'
PASSWORD = '유저 비밀번호'
DATABASE_NAME = '기본 데이터베이스'
COLLECTION_NAME = ''
MONGO_URI = f"mongodb+srv://{USER}:{PASSWORD}@{HOST}/{DATABASE_NAME}?retryWrites=true&w=majority"
client = MongoClient({URI})
db_1 = client["db_1"]
#연결한 클라이언트 객체의 필드로 데이터베이스를 생성/선택
collection_1 = db_1["new_collection"]
# 데이터베이스의 콜렉션을 조작
collection_1.insert_one({"a":"hi", "b":[1, 2, {"c":"bye"}]})
# 문서를 해당 콜렉션에 삽입
: 고유 번호를 통해서 문서를 구별한다
{"a":"hi", "b":[1, 2, {"c":"bye"}]}
삽입할때 _id
자동으로 추가되었다doc_1 = collection_1.find_one()
print(doc_1) # 고유번호 확인 가능
2021-04-22T17: 41: 00.533-0300 I NETWORK [thread1] Starting new replica set monitor for atlas-12cwpw-shard-0 / mflix-shard-00-02.maiqr.mongodb.net 1.: 27017, mflix-shard -00-00.maiqr.mongodb.net.:27017,mflix-shard-00-01.maiqr.mongodb.net.:27017
2021-04-22T17: 41: 00.819-0300 E NETWORK [ReplicaSetMonitor-TaskExecutor-0] SSL peer certificate validation failed: unable to get local issuer certificate
💡 certifi 사용하기
pip install certifi
from pymongo import MongoClient
import certifi
HOST = 'cluster어저꾸mongodb.net'
USER = '유저이름'
PASSWORD = '유저 비밀번호'
DATABASE_NAME = '기본 데이터베이스'
COLLECTION_NAME = ''
MONGO_URI = f"mongodb+srv://{USER}:{PASSWORD}@{HOST}/{DATABASE_NAME}?retryWrites=true&w=majority"
client = MongoClient({URI}, tlsCAFile=certifi.where())
pymongo typeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument
database= client[DATABASE_NAME]
collection = database[COLLECTION_NAME]
# octokit_repos: 여러개 _id가 있는 json
collection.insert_many(octokit)