0

MongoDB 支持 continueOnError 选项,因此即使单个文档插入失败,批量插入也会继续。

有没有办法使用 spring-data 版本 1.3.3.RELEASE 来实现这一点。我正在使用 MongoOperations 类,但没有看到允许我执行此操作的 API。

谢谢!!

4

1 回答 1

2

您应该通过 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
于 2014-02-24T02:01:48.190 回答