OS: Ubuntu 24.04
MongdoDB: 8.0.9
Mongosh: 2.5.1
https://www.mongodb.com/ko-kr/docs/manual/tutorial/install-mongodb-on-ubuntu/
sudo apt-get install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
# Ubuntu 24.04 (Nobble)
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
# Ubuntu 20.04 (Jammy)
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
# Ubuntu 20.04 (Focal)
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
sudo apt-get update
# latest version
sudo apt-get install -y mongodb-org
# specific version
sudo apt-get install -y \
mongodb-org=8.0.9 \
mongodb-org-database=8.0.9 \
mongodb-org-server=8.0.9 \
mongodb-mongosh \
mongodb-org-shell=8.0.9 \
mongodb-org-mongos=8.0.9 \
mongodb-org-tools=8.0.9 \
mongodb-org-database-tools-extra=8.0.9
# mongodb 시작
sudo systemctl start mongod
# 시작되었는지 확인
sudo systemctl status mongod
몽고db 실행
mongosh
# uv
uv add pymongo
# pip
pip install pymongo
client = MongoClient(host='localhost', port=27017)
# 데이터베이스 목록
print(client.list_database_names())
['admin', 'config', 'local']
# 데이터베이스 접근
db = client['mydb']
print(db)
Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydb')
collection = db['myCol']
print(collection)
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydb'), 'myCol')
import datetime
worker = {"name": "홍길동",
"work_time": 10,
"pay_time": 10000,
"work_days": ['월요일', '화요일', '수요일', '목요일', '금요일'],
"date": datetime.datetime.now()
}
print(worker)
{'name': '홍길동', 'work_time': 10, 'pay_time': 10000, 'work_days': ['월요일', '화요일', '수요일', '목요일', '금요일'], 'date': datetime.datetime(2025, 5, 26, 22, 50, 20, 483301)}
# Collection 접근 - 'workers' Collection
workers = db.workers
# Document 추가 - insert_one() 메서드 이용
worker_id = workers.insert_one(worker).inserted_id
print(worker_id)
68347230cda61368e4f44282
print(workers.find_one())
{'_id': ObjectId('68350790521ae63bdc873181'),
'name': '홍길동',
'work_time': 10,
'pay_time': 10000,
'work_days': ['월요일', '화요일', '수요일', '목요일', '금요일'],
'date': datetime.datetime(2025, 5, 27, 9, 30, 8, 199000)}
workers_info = []
workers_info.append({"name": "홍길동",
"work_time": 10,
"pay_time": 10000,
"work_days": ['월요일', '화요일', '수요일', '목요일', '금요일'],
"date": datetime.datetime.now()
})
workers_info.append({"name": "김철수",
"work_time": 20,
"pay_time": 20000,
"work_days": ['월요일', '화요일', '수요일', '토요일'],
"date": datetime.datetime.now()
})
workers_info.append({"name": "김영희",
"work_time": 30,
"pay_time": 30000,
"work_days": ['월요일', '화요일', '토요일', '일요일'],
"date": datetime.datetime.now()
})
workers = db.workers
workers.insert_many(workers_info)
workers.find_one()
find_one()은 조건을 주지 않으면 첫 번째 데이터가 나오는 듯 하다.
{'_id': ObjectId('68350790521ae63bdc873181'),
'name': '홍길동',
'work_time': 10,
'pay_time': 10000,
'work_days': ['월요일', '화요일', '수요일', '목요일', '금요일'],
'date': datetime.datetime(2025, 5, 27, 9, 30, 8, 199000)}
workers.find_one({'name': '김영희'})
{'_id': ObjectId('683509e6200b18b56744b234'),
'name': '김영희',
'work_time': 30,
'pay_time': 30000,
'work_days': ['월요일', '화요일', '토요일', '일요일'],
'date': datetime.datetime(2025, 5, 27, 9, 40, 6, 607000)}
mysql에서는 select * from table;
인것 같다.
for i in workers.find():
print(i)
{'_id': ObjectId('68350b27200b18b56744b235'), 'name': '홍길동', 'work_time': 10, 'pay_time': 10000, 'work_days': ['월요일', '화요일', '수요일', '목요일', '금요일'], 'date': datetime.datetime(2025, 5, 27, 9, 45, 27, 345000)}
{'_id': ObjectId('68350b27200b18b56744b236'), 'name': '김철수', 'work_time': 20, 'pay_time': 20000, 'work_days': ['월요일', '화요일', '수요일', '토요일'], 'date': datetime.datetime(2025, 5, 27, 9, 45, 27, 345000)}
{'_id': ObjectId('68350b27200b18b56744b237'), 'name': '김영희', 'work_time': 30, 'pay_time': 30000, 'work_days': ['월요일', '화요일', '토요일', '일요일'], 'date': datetime.datetime(2025, 5, 27, 9, 45, 27, 345000)}
https://wooiljeong.github.io/python/mongodb-01/
https://www.mongodb.com/ko-kr/docs/manual/tutorial/install-mongodb-on-ubuntu/