谁能告诉我如何在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/