Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Pymongo w=1,带有“继续”错误_Mongodb_Pymongo - Fatal编程技术网

Mongodb Pymongo w=1,带有“继续”错误

Mongodb Pymongo w=1,带有“继续”错误,mongodb,pymongo,Mongodb,Pymongo,我收集了很多推特。我想在此集合中插入推文列表。新列表可能也有一些重复的tweet,我想确保重复的tweet不会被写入,但所有剩余的tweet都会被写入。为了实现这一点,我使用以下代码 mongoPayload = <list of tweets> committedTweetIDs = db.tweets.insert(mongoPayload, w=1, continue_on_error=True) print "%d documents committed" % len(com

我收集了很多推特。我想在此集合中插入推文列表。新列表可能也有一些重复的tweet,我想确保重复的tweet不会被写入,但所有剩余的tweet都会被写入。为了实现这一点,我使用以下代码

mongoPayload = <list of tweets>
committedTweetIDs = db.tweets.insert(mongoPayload, w=1, continue_on_error=True)
print "%d documents committed" % len(committedTweetIDs)
mongoPayload=
committedTweetIDs=db.tweets.insert(mongoPayload,w=1,continue\u on\u error=True)
打印“%d个已提交的文档”%len(已提交的星期三)
上面的代码片段应该可以工作。然而,我得到的行为是第二行生成的DuplicateKeyError。我不知道这是怎么回事,因为我提到了continue\u on\u错误


最后,我希望Mongo提交所有不重复的文档,并将所有写入日志的文档的TweetID(作为确认)返回给我

即使使用
continue\on\u error=True
,如果MongoDB告诉PyMongo您试图插入具有重复
\u id的文档,PyMongo也会引发DuplicateKeyError。但是,使用
continue\on\u error=True
,服务器尝试插入列表中的所有文档,而不是在第一个错误时中止操作。异常的
error\u document
属性告诉您文档列表中的最后一个重复的
\u id


不幸的是,在执行大容量插入时,您无法确定总共有多少文档成功和失败。当我们实现大容量写操作时。

第二行不是有效的Python。不能将位置参数放在关键字参数(
SyntaxError
)之后。你能给我们看看这条线到底是什么样子吗?如果您正在执行类似于
continue\u on\u error=some\u variable
的操作,您确定
some\u variable
是真的吗?对不起,是的
continue\u on\u error=True应该在那里。我错了,谢谢。是的,我看到了2.6的发行说明,其中写道用户可以更好地控制批量插入和故障条件。