首页 > 解决方案 > pymongo insert_many 改变现有文档

问题描述

tweets = pd.read_csv("FIFA.csv")
documents = tweets.to_dict(orient='records')
pprint(documents[0])
conn = pymongo.MongoClient("localhost")
coll = conn["test"]["tweets"]
coll.insert_many(documents, ordered=False)
pprint(documents[0])

奇怪的是在 Mongo 4.0 和 pymongo 3.7.2 上运行此代码修改了documents.

在 insert_many 调用之后,文档中填充了一个“_id”字段。

标签: pythonmongodbpymongo

解决方案


这不是“奇怪”,而是设计使然。http://api.mongodb.com/python/current/tutorial.html#inserting-a-document

插入文档时,如果文档尚未包含“_id”键,则会自动添加特殊键“_id”。


推荐阅读