我使用弹簧数据mongodb的和具有简单的储存库,其被配置具有以下配置:弹簧数据MongoDB的散装保存继续错误
@Configuration
@EnableMongoRepositories(basePackages = "com.my.package")
@Profile("default")
public class MongoConfig extends AbstractMongoConfiguration {
@Value("${mongo.db.uri}")
private String mongoDbUri;
@Value("${mongo.db.database}")
private String mongoDbDatabaseName;
@Override
protected String getDatabaseName() {
return mongoDbDatabaseName;
}
@Override
public MongoClient mongoClient() {
return new MongoClient(new MongoClientURI(mongoDbUri));
}
}
所使用的库扩展CrudRepository,这使得该我可以调用saveAll()方法。默认情况下,除非向insertMany/updateMany命令传递了“continueOnError”为true或具有“BulkMode.unordered”的选项,否则在mongodb中执行saveAll(批量操作)将停止。有没有什么办法可以将spring数据配置为在错误时始终继续(或者始终执行无序的插入/更新),这样,即使有些记录失败,执行saveAll也会尝试整个批量。
谢谢!
在[旧版本的驱动程序的MongoDB的](http://api.mongodb.com/java/2.12/com/mongodb/WriteConcern.html#continueOnErrorForInsert(布尔值))是可能的设置此使用WriteConcern.continueOnError()的行为。然而,这从api中删除。 – user45