MongoDB 支持 continueOnError 选项,因此即使单个文档插入失败,批量插入也会继续。
有没有办法使用 spring-data 版本 1.3.3.RELEASE 来实现这一点。我正在使用 MongoOperations 类,但没有看到允许我执行此操作的 API。
谢谢!!
MongoDB 支持 continueOnError 选项,因此即使单个文档插入失败,批量插入也会继续。
有没有办法使用 spring-data 版本 1.3.3.RELEASE 来实现这一点。我正在使用 MongoOperations 类,但没有看到允许我执行此操作的 API。
谢谢!!
您应该通过 MongoTemplate 的writeConcern选项进行设置
mongoTemplate.setWriteConcern(
new WriteConcern(<Your options>).continueOnErrorForInsert(true));
或者,也应该有一个用于 WriteConcern 的构造函数来执行此操作。
更具体地说,作为一种用法,我在配置类中设置了一个 Bean:
public @Bean
MongoTemplate mongoTemplate() throws Exception {
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory());
WriteConcern writeConcern = new WriteConcern(2);
writeConcern.continueOnErrorForInsert(true);
mongoTemplate.setWriteConcern(writeConcern);
return mongoTemplate;
}
然后稍后,设置操作:
MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
Collection collection = new Collection() { ... }
mongoOperation.insert(collection,"collection"); // Uses the writeConcern options