首页 > 解决方案 > API 将数据保存在错误的 MongoDB 集合中

问题描述

嗨,我正在按照指南创建 API。我有与本指南中类似的代码。现在我正在尝试在同一个项目中创建另一个 API,并将数据存储在单独的集合中。但是每当我进行任何 API 调用时,它总是使用相同的数据库。我无法弄清楚数据库位置的配置位置。能否请我帮忙找出在哪里可以配置数据库连接到我的 Java 程序?这是我的代码。

@CrossOrigin(origins = "http://localhost:4200")
@RestController
@RequestMapping("/api/v1")
public class TicketController {
    @Autowired
    private TicketRepository ticketRepository;
    @Autowired
    private TicketGeneratorService ticketGeneratorService;
    
    @GetMapping("/tickets")
    @ApiOperation(value = "Retrieves all Tickets in the database")
    public List<Ticket> getAllTickets() {
        return ticketRepository.findAll();
    }
    
    @PostMapping("/tickets/create")
    @ApiOperation(value = "Adds a Ticket to the database")
    public Ticket createTicket(@Valid @RequestBody Ticket ticket) {
        ticket.setId(ticketGeneratorService.generateSequence(Ticket.SEQUENCE_NAME));
        return ticketRepository.save(ticket);
    }   
    
}

这是我的 application.properties 文件

这是我的 application.properties 文件下的代码。我不明白这怎么可能是不正确的。employeeDatabase 是我正在使用的数据库,在其中我试图使用两个不同的集合。我创建和检索的所有数据仅来自其中一个集合。我怎样才能访问其他集合?

# MONGODB (MongoProperties)
spring.data.mongodb.uri=mongodb://localhost:27017/employeeDatabase

employeeDatabase 是包含我正在使用的集合的数据库。

这是我的课程列表。 在此处输入图像描述

标签: javamongodbapirest

解决方案


检查您application.properties的数据库名称,您可能忘记更改第一个 API 的名称。

如果您希望项目中有多个 mongoDB,请查看此答案以获取指导。

如果您只使用一个数据库,但文档被写入第一个 API 的同一个集合,那么您很可能没有更改第二个 API 中的模型类。

为新集合创建新模型:

import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "collection_name")
public class CollectionName { ... }

现在使用此模型写入数据库。


推荐阅读