首页 > 解决方案 > 如何使用 Spring Boot 从 MonogoDb 获取准确的 id

问题描述

我用 mongodb 创建了一个 spring boot 项目,当我将数据插入到集合中时,它会被插入,但是当我尝试从 mongodb 中获取它时,它返回的 id 如下

"id": {
            "timestamp": 1586793129,
            "counter": 877082,
            "date": "2020-04-13T15:52:09.000+0000",
            "time": 1586793129000,
            "machineIdentifier": 1589527,
            "processIdentifier": 29810,
            "timeSecond": 1586793129
        },

如何从 mongoDB 获取确切的 id?

否则如何从各个字段生成 id

标签: mongodbspring-boot

解决方案


你需要序列化。如此简单的方法是添加此依赖项

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.0.rc1</version>
</dependency>

然后您需要在主类中添加以下方法。

@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer()
{
    return builder -> builder.serializerByType(ObjectId.class,new ToStringSerializer());
}

仅此而已,玩得开心


推荐阅读