如果某个文档没有_id
字段,MongoDB会自动为插入的文档指定一个正确的_id
字段,我明白这一点,对我来说没问题。
但是为什么pymongo通过添加dict
字段来改变插入的_id
?
我希望在插入后使用插入的dict,并且额外的_id
字段有点问题。
我知道我可以使用dict.pop('_id')
删除_id字段,但如果它是文档列表(对于insert_many),则需要额外的努力。
我的问题是,是否有办法阻止插入的dict
或List[dict]
被_id字段变异?
答案 0 :(得分:0)
您可以通过插入字典或字典列表
来防止这种情况In [1]: from copy import deepcopy
In [2]: from pymongo import MongoClient
In [3]: data = [{'a': 2}, {'a': 3}]
In [4]: with MongoClient() as client:
...: client.test.collection.drop()
...: result = client.test.collection.insert_many(deepcopy(data))
...:
In [5]: result.inserted_ids
[ObjectId('5a819d34d99e830381e025b0'), ObjectId('5a819d34d99e830381e025b1')]
In [6]: data
Out[6]: [{'a': 2}, {'a': 3}]