Spring Boot+MongoDB+创建集合

neekobn8  于 2022-09-18  发布在  Spring
关注(0)|答案(2)|浏览(180)

我有个问题。在使用Eclipse创建了一个Spring Boot项目并配置了application.properties文件之后,我的集合并没有被创建,而在执行之后,Eclipse控制台发出信号,表示已经正常连接到MongoDB。我不明白发生了什么事。使用MySQL,我们已经创建了表,所以我预计会创建集合,但没有。

总而言之,在部署之后,我没有在MongoDB中看到我的集合(一个标记为@Document的类)。

mw3dktmi

mw3dktmi1#

在您至少插入一个文档之前,不会创建新的收藏。请参阅文档Create Collection

hfyxw5xn

hfyxw5xn2#

在整个Spring中,您可以通过两种方式来实现这一点。我在Spring2.1.7中测试了下面的说明。

只要有一个@Document类,Spring就不会在Mongo中创建集合。但是,如果您执行以下操作,它将创建一个集合:

1.您有一个要在集合中编制索引的字段,并在Java类中对其进行了注解。例如。

@Indexed(unique = true)
private String indexedData;

1.为集合创建存储库:

public interface MyClassRepository extends MongoRepository<MyClass, String> {
}

如果您不需要/不想要索引,第二种方法是添加一些在启动时运行的代码,在集合中添加一个伪值,然后再次删除它。

@Configuration
public class LoadDatabase {
    @Bean
    CommandLineRunner initDb(MyClassRepository repository) {
        // create an instance of your @Document annotated class
        MyClass myDocument = new MyClass();

        myDocument = repository.insert(myDocument);
        repository.delete(myDocument);
    }
}

确保您的Document类有一个正确类型的字段(默认情况下是字符串),用@Id注解,以MapMongo的_id字段。

相关问题