Chào các bạn,
Dạo gần đây mình có cơ hội làm việc với MongoDB và nhận thấy nhu cầu lấy dữ liệu từ NoSQL database này vào Excel để phân tích, báo cáo là khá lớn. Tuy nhiên, việc export thủ công từ MongoDB ra file CSV rồi import vào Excel khá mất thời gian, đặc biệt khi dữ liệu thay đổi thường xuyên.
Mình đã tìm tòi và thử nghiệm một phương pháp tự động hóa việc này bằng Python, sử dụng thư viện pymongo để kết nối và lấy dữ liệu, sau đó dùng pandas để xử lý và lưu ra file Excel.
Các bước cơ bản:
- Cài đặt các thư viện cần thiết:
pip install pymongo pandas openpyxl - Viết script Python để kết nối đến MongoDB server.
- Truy vấn dữ liệu từ collection mong muốn.
- Chuyển đổi dữ liệu sang DataFrame của pandas.
- Lưu DataFrame ra file Excel (
.xlsx).
Ví dụ code cơ bản:
from pymongo import MongoClient
import pandas as pd
# Kết nối MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['your_database']
collection = db['your_collection']
# Truy vấn dữ liệu (ví dụ: lấy tất cả)
data = list(collection.find())
# Chuyển đổi sang Pandas DataFrame
df = pd.DataFrame(data)
# Xử lý dữ liệu nếu cần (ví dụ: xóa cột _id)
df = df.drop('_id', axis=1)
# Lưu ra file Excel
df.to_excel('output_data.xlsx', index=False)
print('Đã xuất dữ liệu thành công!')Phương pháp này rất linh hoạt, bạn có thể tùy chỉnh câu lệnh truy vấn (query) để lấy dữ liệu theo ý muốn, lọc, sắp xếp, hoặc thậm chí là thực hiện các phép biến đổi phức tạp trước khi xuất ra Excel.
Mình hy vọng chia sẻ này hữu ích cho các bạn nào đang cần xử lý dữ liệu từ MongoDB. Có ai có kinh nghiệm hay phương pháp nào khác hay hơn không, cùng thảo luận nhé!