如何使用 Spring Boot 在 Mongodb 中保存重复项?

Posted

技术标签:

【中文标题】如何使用 Spring Boot 在 Mongodb 中保存重复项?【英文标题】:How can I save duplicate in Mongodb using springboot? 【发布时间】:2022-01-17 05:04:38 【问题描述】:

我必须读取 csv 文件,然后将 csv 文件的内容保存在 mongodb 中。在保存数据时,如果任何值已经存储在 mongodb 中,则该值不会再次存储(或者我说重复值不会存储在 mongodb 中)

谁能帮帮我。我用的是mongodb的saveAll()。

repo.saveAll(list1);

如果任何具有名为“id”的列的列表的值为 4。如果我正在存储另一个具有相同 id 的列表,即 4,那么我将无法存储它。

【问题讨论】:

mongodb 允许重复,只要您尝试复制的文件没有唯一索引。 _id 默认有一个唯一索引,如果您的数据有一个列名 _id 并且包含重复的 _id 值,请更改该列的名称,以保存为 id 例如不是 _id 【参考方案1】:

您不能在索引上存储重复项。 索引通常在模式中设置。 mongoDB 原生的 id 字段始终是一个索引。

如果你想删除它,你必须用这个声明它:

db.collection.dropIndex("id") 
// Or
db.collection.dropIndex("_id") 

Here the docs

【讨论】:

以上是关于如何使用 Spring Boot 在 Mongodb 中保存重复项?的主要内容,如果未能解决你的问题,请参考以下文章

企业级 SpringBoot 教程 springboot整合mongodb

如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

如何在 Spring Boot 中使用 @Transactional 注解

如何在没有spring-boot的情况下使用eureka+feign?

如何使用 Spring-Boot 播种 Spring-Security

如何使用 graphql-spring-boot 向 GraphQL Java 添加检测?