[BulkWriteError异常,当插入具有自己唯一的“ _id”值的文档时

问题描述 投票:0回答:1

我正在尝试将一些测试数据插入到集合中,数据本身包含我已经创建的_id值。

这是使用insertmany()pymongo命令写入集合时使用的数据和代码的小样本

def database_Insertions(data): #data is the list of dictionaries i am inserting
myClient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myClient["Polling_Data"]
mycol = mydb["Test_Collection"]

try:
    mycol.insert_many(data)
except BulkWriteError as bwe:
    print("Writing Error Details " ,bwe.details)

这里是我要插入的数据的示例。data i am writing

[当我尝试运行此命令时,我收到了“ BulkWriteError”,当我用Try / Catch分解了错误消息时,得到了此消息...

Writing Error Details  {'writeErrors': [{'index': 0, 'code': 11000, 'keyPattern': {'_id': 1}, 'keyValue': {'_id': 98800754}, 'errmsg': 'E11000 duplicate key error collection: Polling_Data.Test_Collection index: _id_ dup key: { _id: 98800754 }', 'op': {'_id': 98800754, 'Poll_Name': 'AL Daily News/Mason-Dixon', 'Date': '2020-02-04', 'Sample_Size': '625 RV', 'MoE': '4.0', 'Biden (D)': '58', 'Trump(R)': '38', 'Spread': 'Trump +20', 'State': 'Ohio'}}], 'writeConcernErrors': [], 'nInserted': 0, 'nUpserted': 0, 'nMatched': 0, 'nModified': 0, 'nRemoved': 0, 'upserted': []}

除对“ E11000重复密钥错误收集”]以外的消息,大多数消息没有用。我几乎可以肯定,这与以下事实有关:我正在使用自己的自定义_id值,并且该自定义_id和mongo默认提供的值存在某种冲突。

非常感谢您的帮助。

我正在尝试将一些测试数据插入到集合中,数据本身包含我已经创建的_id值。这是我在编写...

python mongodb pymongo
1个回答
0
投票

E11000 duplicate key error collection表示您要插入的文档的_id值已存在于集合中的文档中。

© www.soinside.com 2019 - 2024. All rights reserved.