Chào mọi người,
Dạo này mình đang làm việc với MongoDB nhiều, mà thỉnh thoảng vẫn cần lấy dữ liệu ra Excel để báo cáo nhanh hoặc gửi cho sếp. Ban đầu cũng loay hoay tìm cách kết nối trực tiếp nhưng thấy hơi phức tạp. Sau đó mình nghĩ ra cách dùng Python script để trích xuất dữ liệu rồi lưu thành file CSV, sau đó nhập vào Excel. Nay chia sẻ lại cho anh em nào cần nhé.
Các bước thực hiện:
- Cài đặt thư viện: Bạn cần cài đặt thư viện
pymongođể kết nối MongoDB vàpandasđể xử lý dữ liệu. Dùng pip để cài:
pip install pymongo pandas
- Viết script Python: Script này sẽ kết nối tới CSDL MongoDB của bạn, truy vấn dữ liệu và lưu vào file CSV.
from pymongo import MongoClient
import pandas as pd
# Thông tin kết nối MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['ten_database_cua_ban']
collection = db['ten_collection_cua_ban']
# Truy vấn dữ liệu (ví dụ: lấy tất cả)
data = list(collection.find({}, {"_id": 0})) # Bỏ qua trường _id
# Chuyển thành DataFrame Pandas
df = pd.DataFrame(data)
# Lưu vào file CSV
df.to_csv('du_lieu_tu_mongodb.csv', index=False, encoding='utf-8-sig')
print('Đã xuất dữ liệu thành công ra file du_lieu_tu_mongodb.csv!')- Nhập file CSV vào Excel: Mở file
du_lieu_tu_mongodb.csvbằng Excel. Nếu gặp vấn đề về font chữ tiếng Việt, bạn có thể mở Excel, vào tab Data -> From Text/CSV và chọn mã hóa là UTF-8.
Cách này tuy không phải kết nối trực tiếp nhưng khá linh hoạt, đặc biệt khi bạn cần xử lý dữ liệu trước khi đưa vào Excel. Hy vọng chia sẻ này hữu ích cho mọi người!