gpt4 book ai didi

mongodb - 带有 continue_on_error 的 Pymongo w=1

转载 作者:可可西里 更新时间:2023-11-01 09:11:31 24 4
gpt4 key购买 nike

我有一组推文。我想在这个集合中插入一个推文列表。新列表也可能有一些重复的推文,我想确保不会写入重复的推文,但所有其余推文都会写入。为此,我使用了以下代码。

mongoPayload = <list of tweets>
committedTweetIDs = db.tweets.insert(mongoPayload, w=1, continue_on_error=True)
print "%d documents committed" % len(committedTweetIDs)

上面的代码片段应该可以工作。但是,我得到的行为是第二​​行生成了 DuplicateKeyError。我不知道这是怎么回事,因为我提到了 continue_on_error。

我最终想要的是让 Mongo 提交所有非重复文档并返回给我(作为确认)写入日志的所有文档的 tweetID。

最佳答案

即使使用 continue_on_error=True,如果 MongoDB 告诉 PyMongo 您试图插入具有重复 _id 的文档,PyMongo 也会引发 DuplicateKeyError。但是,对于 continue_on_error=True,服务器尝试将所有文​​档插入列表中,而不是在出现第一个错误时中止操作。异常的 error_document 属性告诉您文档列表中的last 重复 _id

不幸的是,当您进行批量插入时,您无法确定总共有多少文档成功和失败。 MongoDB 2.6 and PyMongo 2.7 will address this in the next release当我们实现批量写入操作时。

关于mongodb - 带有 continue_on_error 的 Pymongo w=1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com