我正在导入数十亿条记录,将其插入mongoDB。
运行大约10个小时后,我收到错误'客户端错误:剩余数据太小而不适用于BSON对象'。
然后错误打破了我的任务,
我尝试使用try exception
跳过有缺陷的数据,并继续前进。
但它也没有用。(异常仍然会破坏解析任务)
所以我想知道如何让mongoDB不破坏我的脚本,即使发生了一些错误,也只是忽略它并继续前进。
def bulk_insert_to_collection(collection_name)
model = collection_name.capitalize.constantize.new
begin
model.collection.insert(@data_in_chunk)
rescue Exception => e
# ignore it
end
end
答案 0 :(得分:0)
将批量插入放在循环中,这样当一个批次失败时,您可以继续前进到下一个批次。你应该一次只插入1000,因为that is what mongo supports。这样您就可以在不丢失插入性能的情况下处理故障而不必丢失。