MongoSpringData id和_id

我正在Windows 10上使用MongoDB社区版4.2,并插入一些文档。我的要求是存储一些包含“ id”作为字段名称的文档,而MongoDB将其替换为“ _id”并使其成为主键。是否可以禁用此功能并将键“ _id”存储为单独的自动生成的主键列,并将“ id”也存储在作为文档一部分的独立列中?

我们使用SpringData Repository将JPA实体插入MongoDb。我们观察到的将具有名称“ id”作为主键的实体转换为_id,而将具有其他名称(如projectId或原样存储的实体)的实体转换为由MongoDB生成的另一个独立列作为_id作为主键。建议很有帮助。

代码:

@Autowired 
TrackHistoryRepository trackHistoryRepository;

trackHistoryRepository.save(entity);

public interface TrackHistoryRepository extends MongoRepository<OdataEntity,String> {}

Entity: 
public class CurrencyEntity implements OdataDeleteableEntity<Long> {


    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="id")
    private Long id;

谢谢, Divya Garg

nongdada123456 回答:MongoSpringData id和_id

MongoDB无法做到这一点。 mongodb中的_id是针对特定记录或数据字段自动递增并自动生成的ID密钥。并且_id是mongodb默认设置的主键。您也可以将用户定义的键(值)输入到_id,但不能更改字段名称。

本文链接:https://www.f2er.com/3059774.html

大家都在问