我正在使用MongoDB创建一个Web应用程序.现在我正在创建管理页面,使管理员能够在网站上添加或删除项目.在页面上,将添加批量导入功能,这样就可以从本地CSV文件导入内容.问题是如何实现该功能.
最简单的方法是将上传的CSV文件转换为JSON,然后使用db.items.insert([{...}, {...}, ...])statement 插入它们.
如果null返回db.getLastError(),则导入成功.没有问题.
但是,如果批量插入期间发生错误,应该怎么做?由于没有事务,因此无法回滚插入的项目.因此,重试插入将导致重复的文档.
解决这个问题的最佳方法是什么?
Ste*_*nie 10
与MongoDB 2.4一样,如果批量插入中的任何文档出错,您将只获得最后一个异常.
如果您希望对批量插入使用事务方法(即所有插入必须成功,或者回滚批处理),那么您应该batch_id在插入的文档中包含一个标识字段.如果发生任何故障,您可以删除从该批处理中插入的任何文档并相应地处理错误(重试或失败).
如果您没有插入分片群集:
ContinueOnError标志设置为false以确保批量插入在第一个错误上停止如果你是插入一个分片集群:
ContinueOnError标志当前始终设置为true| 归档时间: |
|
| 查看次数: |
6177 次 |
| 最近记录: |