【问题标题】:API saving data in the wrong MongoDB collectionAPI 将数据保存在错误的 MongoDB 集合中
【发布时间】:2020-10-23 07:32:10
【问题描述】:

您好,我正在关注this 创建 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 是包含我正在使用的集合的数据库。

这是我的课程列表。

【问题讨论】:

    标签: java mongodb api rest


    【解决方案1】:

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

    如果您希望在您的项目中拥有多个 mongoDB,请查看此answer 以获得指导。

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

    为新集合创建新模型:

    import org.springframework.data.mongodb.core.mapping.Document;
    
    @Document(collection = "collection_name")
    public class CollectionName { ... }
    

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

    【讨论】:

    • 请再次查看我的帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多