如何在内存中为 mongoDB 配置类似于 Spring Boot 中的 H2 数据库的嵌入式数据库

问题描述

我正在尝试使用类似于 H2 数据库的 Spring Boot 在内存中配置嵌入式 Mongo 数据库。 Spring Mongo 有没有可用的选项?

解决方法

您可以使用以下依赖项创建 In-memory mongodb-server

<dependency>
    <groupId>de.bwaldvogel</groupId>
    <artifactId>mongo-java-server</artifactId>
    <version>1.38.0</version>
</dependency>

然后在配置类中声明mongo客户端

@Override
    public MongoClient mongoClient() {
       
    MongoServer server = new MongoServer(new MemoryBackend());
    // bind on a random local port
    InetSocketAddress serverAddress = server.bind();
   return  mongoClient=MongoClients.create(
            MongoClientSettings.builder()
                    .applyToClusterSettings(builder ->
                            builder.hosts(Arrays.asList(new ServerAddress(serverAddress))))
                    .build());        

    }