python - 如何处理 MongoDB (pyMongo) 中的 DuplicateKeyError?

标签 python mongodb pymongo database

谁能告诉我如何在MongoDB中处理DuplicateKeyError

我正在编写一个 python 脚本,我将几个文档从两个不同的集合移动到第三个集合中。由于有一些相同的文档(具有相同的 ObjectId),这两个集合之间存在少量重叠。这将导致以下结果:

DuplicateKeyError: E11000 duplicate key error collection: admin.collection_test index: id dup key: { : ObjectId('593a920b529e170d4b8fbf72') }

为了摆脱我使用的错误:

try:
    do something
except pymongo.errors.DuplicateKeyError:
    pass

我希望通过使用“try-except”将所有非交叉文档移动到第三个集合,但是一旦出现第一个重叠(集合中已经存在的文档),脚本就会平静地停止运行。 非常感谢任何帮助!

最佳答案

如果您要遍历文档,请尝试使用 continue 而不是 pass

for doc in documents:
    try:
        # insert into new collection
    except pymongo.errors.DuplicateKeyError:
        # skip document because it already exists in new collection
        continue

关于python - 如何处理 MongoDB (pyMongo) 中的 DuplicateKeyError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44462399/

相关文章:

python - 以哈希形式将密码存储在 MySQL 数据库中 Django App

在 Raspberry Pi 上重启后 Mongodb 失败

MongoDB 游标挂起

python - 在 pymongo 中正确使用 $ne 或 $not(不支持的投影选项)

python - Mongodb 中聚合的有效方法

python - 如何循环遍历下拉列表Scrapy

python - 来自多年时间序列 python 的每小时热图

node.js - Mongoose 总是返回一个空数组 NodeJS

python - 根据字符串中的第一个字符查找字符串列表中元素的第一次出现

java - MongoDB:如何测量数据库的延迟或其他参数