【问题标题】:How to hook up springboot to MongoDB?如何将 Spring Boot 连接到 MongoDB?
【发布时间】:2015-07-14 07:58:12
【问题描述】:

我正在尝试使用 springboot 和 mongo db 构建一个 rest api。我安装并运行了一个本地 MongoDB,我尝试连接 springboot 以使用它。然而,即使我在 Mongo 中有大量数据,rest api 仍然返回空列表。我还尝试使用 rest api 添加一些测试数据,它成功但我在 MongoDB 中看不到它。只是想知道它使用的是哪个 mongo?我的数据库是my-store,集合名称是processes

在我的application.properties 文件中,我将 MongoDB 数据库指定为我正在使用的数据库:

spring.data.mongodb.database=my-store

这是我的java代码:

回购:

@RepositoryRestResource(collectionResourceRel = "processes", path="processes")
public interface ProcessRepository extends MongoRepository<Process, String> {
    public List<Process> findAll();
}

控制器:

@RestController
@RequestMapping("/processes")
public class ProcessRestController {

    @Autowired
    private ProcessRepository repo;

    @RequestMapping(method=RequestMethod.GET)
    public List<Process> getAll() {
        return repo.findAll();
    }
    ...
    }

终于搞清楚是什么问题了,集合名称是'processes'但是java模型是'Process',有两种方法可以修复它: 1.将java模型对象重命名为'Proecesses' 2.保留java模型对象'Process',但添加注释如下:

@Document(collection="processes")  <=== annotation here
public class Process {
    @Id
    private String id;
    private String message;
    private Long highWatermark;

【问题讨论】:

    标签: mongodb spring-boot


    【解决方案1】:

    我最近遇到了类似的情况。集合被命名为“Person”,类也被命名为“Person”。 java 程序总是返回一个空列表。需要注意的是,Java 程序中由代码创建的集合的名称以小写开头。考虑到这一点,我创建了一个名为“person”(小写)的集合,程序返回了完整列表。希望这对 mongoDB 的初学者有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 2020-05-26
      • 2021-10-03
      • 2016-05-12
      • 2020-10-26
      • 2021-06-06
      相关资源
      最近更新 更多