首页 > 解决方案 > Spring Data MongoDB中@MongoId在@Id上的用途是什么?

问题描述

我正在尝试将模型添加到 Mongo Db。

我知道我可以使用 @Id 来避免在 _id 字段中创建 ObjectId。现在,在使用它时,我从 org.springframework.data.mongodb.core.mapping包中遇到了@MongoId。

所以我的问题是我们可以在@Id 上使用@MongoId,如果可以,有什么用例?不幸的是,没有足够的文档可用于@MongoId

如下所示:

import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoId;

import java.util.Date;

@Document
public class LeadDetails {
    @MongoId
    private Integer id;
    private String firstName;
    private String middleName;
    private String lastName;
    private String mobile;
    private String landlineNumber;
    private Date contactedOn;
    private Date repliedOn;
    private String email;
}

标签: javaspringmongodbspring-dataspring-data-mongodb

解决方案


某些环境需要自定义方法来映射 Id 值,例如存储在 MongoDB 中的数据,这些数据没有通过 Spring Data 映射层运行。文档可以包含可以表示为 ObjectId 或字符串的 _id 值。将文档从存储读取回域类型工作得很好。由于隐式 ObjectId 转换,通过其 id 查询文档可能很麻烦。因此无法以这种方式检索文档。对于这些情况,@MongoId 提供了对实际 id 映射尝试的更多控制。

在此处输入图像描述


推荐阅读