通过Java使用Spring Boot向MongoDB发出PUT请求,而不是进行更新为什么会这样?

问题描述

我不是专家,所以请原谅您在我的项目中可能看到的任何错误代码

我构建了一个应用程序,使用户可以创建,阅读,更新和删除食材和食谱,然后将其用于购物清单。我使用Java,将Spring Boot作为后端,将MongoDB作为数据库,将AngularJS作为前端。创建,读取和删除可以很好地工作,但是更新不适用于数据库中的配方集合。

当我运行后端服务器并使用邮递员发出PUT请求以更新配方时,即使我指定了现有配方的ObjectID,该请求正文中的配方也会作为新文档插入。我的成分收集没有这个问题。我怀疑这与以下事实有关:配方文档是嵌套的JSON对象,而成分文档不是,但是我可能是错的。

我已将项目的Java后端上传到gitHub:https://github.com/firo8/grocerylists/tree/master/grocery-list/src/main/java/com/firo/grocerylist

我到处搜索,找不到其他人,这个问题我可以理解。例如。以下问题似乎相似,但答案无济于事:PUT makes POST instead of updating value in Spring Boot

该如何解决

预先感谢

解决方法

请参考spring mongo db支持页面上的以下文档。 https://docs.spring.io/spring-data/mongodb/docs/3.0.3.RELEASE/reference/html/#mongo.core

我看到您需要通过创建mongo客户端来连接数据库,并使用mongo模板从mongo db中插入/更新/获取/删除

按照文档进行操作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...