You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Data Mongo中为MongoDB文档自定义主键(保留id字段)

解决方案

要实现将name字段作为MongoDB文档的主键_id,同时保留类中的id字段,你需要调整注解的使用方式,具体步骤如下:

  • 移除id字段上的@Id注解:这个注解原本用于标记主键,现在要将主键转移到name字段,因此需要去掉它。如果不需要将id字段持久化到数据库,可以给它添加@Transient注解(该注解会让MongoDB忽略这个字段,不存入文档);如果需要保留该字段的持久化,直接去掉@Id即可。
  • 在name字段上添加@Id注解:这个注解会告诉MongoDB,将该字段的值作为文档的_id主键。

调整后的实体类代码如下:

public class Test {
    // 移除@Id,若不需要持久化该字段可添加@Transient
    private String id;
    
    @Id
    private String name;
    
    private String age;
}

你之前使用的@Field("name")注解仅用于指定Java字段与MongoDB文档字段的名称映射,和主键的设置逻辑无关,因此无法实现将name设为主键的需求。

内容的提问来源于stack exchange,提问作者Pushpak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:09:51