【发布时间】:2018-02-27 08:30:23
【问题描述】:
我通过 mongodb java api 3.6.1 和方法 insertMany(List<Document>) 使用无序批量一次在 mongodb 3.6 中插入 1000 个文档。
try {
collection.insertMany(docs);
} catch (MongoBulkWriteException e) {
// e is :
// Bulk write operation error on server myserver.com:27011. Write errors: [BulkWriteError{index=0, code=11000, message='E11000 duplicate key error collection: foodb.bar index: bar.id_1 dup key: { : 1 }', details={ }}].
}
假设只有一个文档触发了重复键错误。其他 999 个文档均已成功插入。
如何知道是哪个文档触发了错误?
当然,当出现重复键错误时,我可以使用重复的 bar.id 搜索我的文档列表,但这很不方便(这意味着解析 WriteError 消息......)如果有两个文档具有相同的bar.id 在List<Document> 中,不询问数据库几乎不可能知道是哪个触发了错误。
谢谢
【问题讨论】:
-
可能是,但我的问题更笼统,因为可能发生任何其他写入错误。
标签: java mongodb bulkinsert mongodb-java