Maison > Questions et réponses > le corps du texte
我想用spring-data-mongodb的接口执行批量插入,每次插入100条数据。接口描述如下:
/**
* 参考:org.springframework.data.mongodb.core.MongoTemplate
* 参考:org.springframework.data.mongodb.core.MongoOperations
*
* Insert a list of objects into the specified collection in a single batch write to the database.
*
* @param batchToSave the list of objects to save.
* @param collectionName name of the collection to store the object in
*/
void insert(Collection<? extends Object> batchToSave, String collectionName);
然而这里存在一个问题:当有重复的唯一索引时,插入操作会“部分成功”——某些文档插入成功,某些插入失败。我想知道什么时候发生的插入失败,哪些失败了,哪些成功了。然而,上面的接口没有返回值。有谁碰到过这个问题吗?
世界只因有你2017-05-02 09:19:54
J'ai rencontré le même problème, la version spring-data-mongodb
est 1.8.2.RELEASE
.
Lors de l'insertion de données avec un identifiant d'index unique, il n'y a aucune valeur de retour, aucune exception et cela n'affectera pas les données d'origine.
Ma version ultérieure de la solution consiste à interroger avant l'insertion. Si les données existent déjà en fonction de la requête d'identification, l'insertion ne sera pas effectuée et les données seront enregistrées dans le résultat renvoyé.
public Person getObject(String id) {
return mongoTemplate.findOne( new Query( Criteria.where( "id" ).is( id ) ),Person.class );
}
Si vous avez une meilleure solution, partagez-la.