MongoDB支持continueOnError选项,因此即使单个文档插入失败,批量插入也会继续。
有没有办法使用spring-data版本1.3.3.RELEASE实现这一目标。我正在使用MongoOperations类,我没有看到允许我这样做的API。
谢谢!
答案 0 :(得分:2)
您应该通过writeConcern
的MongoTemplate选项进行设置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