MongoDB批量插入中的失败处理

3
您好,我需要向mongodb插入约10万条记录。我正在使用BulkWriteOperation api来插入一批记录。我将整个过程拆分为每次插入一批1000个记录到mongo。如果一批中的任何一个记录插入失败,则整个批次都不会被插入到mongo。是否有办法仅获取失败批次的记录列表,以便我可以递归并将剩余的记录插入到mongo。或者是否有一种方式可以进行批量插入到mongodb,除了失败的记录之外,所有的记录都需要被插入。
谢谢。

如果某些记录存在问题,我通常将批处理大小设置为1。对于100,000条记录,与使用1000的批处理大小相比,使用1的额外开销应该是可以接受的。 - Alex
谢谢回复。记录大小将来可能会增长到数百万。使用批量插入更好,对吧? - user2110228
1个回答

0

您能否确保提到您使用的编程语言是什么?

对于Python,我发现在此用例中使用ordered=False进行insert_many操作更好(只有当插入的顺序不重要时才有效-如所需,如果有些插入失败也不会出错)。BulkWriteError给出了失败插入的详细信息,您可以使用错误代码决定之后该怎么做。

其他语言应该类似。如果不起作用,请告诉我。 编辑:这个问题似乎与另一个问题相似


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接