基于定义的数据模型,使用PyMongo批量插入MongoDB数据
使用PyMongo批量插入250条员工数据到MongoDB
步骤1:安装并导入PyMongo
先确保已安装PyMongo,未安装的话通过pip安装:
pip install pymongo
在代码中导入必要模块:
from pymongo import MongoClient from datetime import datetime
步骤2:连接MongoDB数据库
根据你的MongoDB配置建立连接(示例为本地默认端口):
# 本地连接,远程则替换为对应连接字符串 client = MongoClient('mongodb://localhost:27017/') # 指定目标数据库和集合 db = client['你的数据库名称'] # 替换为实际数据库名 employees_collection = db['employees']
步骤3:整理250条数据集格式
确保每条数据结构与你手动插入的首条数据完全匹配,注意关键细节:
date_assigned字段不能用Mongo Shell的{$date: 01-15-2022}格式,PyMongo需用Python的datetime对象managing、department、laptop需保持「数组包裹字典」的嵌套结构
单条数据格式示例:
sample_employee = { "employee_id": 412153, "first_name": "Carrol", "last_name": "Dhin", "email": "carrol.dhin@company.com", "managing": [{"manager_id": 412153, "employee_id": 174543}], "department": [{"department_name": "Accounting", "department_budget": 500000}], "laptop": [{ "serial_number": "CSS49745", "manufacturer": "Lenovo", "model": "X1 Gen 10", "date_assigned": datetime(2022, 1, 15), "installed_software": ["MS Office", "Adobe Acrobat", "Slack"] }] }
将250条数据全部整理为字典,存入一个列表(比如employees_data_list)。
步骤4:批量插入数据
使用insert_many()方法批量插入,比循环调用insert_one()效率更高:
try: result = employees_collection.insert_many(employees_data_list) print(f"成功插入{len(result.inserted_ids)}条数据") except Exception as e: print(f"插入出错: {e}")
额外注意
- 若数据集来自CSV/Excel,需先解析文件,将每行数据转换为符合要求的字典结构
- 确保
employee_id等唯一字段无重复(若设置了唯一索引),否则插入会失败 - 日期统一用
datetime对象,MongoDB会自动存储为ISODate类型,与手动插入格式一致
内容的提问来源于stack exchange,提问作者amatof
相关产品推荐
相关产品推荐

