【问题标题】:Spring Boot accessing MongoDB - multiple records/documents update from rest api endpointSpring Boot访问MongoDB - 从rest api端点更新多个记录/文档
【发布时间】:2019-01-12 23:46:09
【问题描述】:

我对 SpringBoot 和 MongoDB 很陌生。我试图创建一个简单的服务来从 MongoDB 中检索数据。使用弹簧教程“https://spring.io/guides/gs/accessing-mongodb-data-rest/”对其进行建模。因此,我会将我的问题与本教程代码完全匹配。

我能够使用带有 GET 的 REST 端点“http://localhost:8080/people”来检索所有数据并通过 POST 将数据输入为 json。

我想要实现的是使用与 POST 相同的 REST 端点在一个错误的调用中将多个记录/文档插入 MongoDB。 错误的 JSON 输入:

[{  "firstName" : "Smith",
    "lastName" : "Joe"
},
{   "firstName" : "Smith",
    "lastName" : "Jane"
}]

单条记录JSON即成功:

{   "firstName" : "Smith",
    "lastName" : "Joe"
}

在浏览论坛时,我可以看到大多数建议是使用 insertMany(),但这需要我明确处理该帖子请求。正在寻找任何专家意见,以对 Spring Boot 数据的任何开箱即用功能做同样的事情。 感谢您对专家意见的任何帮助,如果问题非常基本,请原谅,只是我对此很陌生..

【问题讨论】:

  • 你能不能为 /people 特别添加 POST 方法的控制器类
  • 当然,Ashish,让我试试,然后更新。但是一个问题,如果我必须编写控制器来处理具有多条记录的 POST,这是否意味着我也必须为 GET 编写它,或者将使用默认值?
  • 我认为您的 GET 调用已经在获取多条记录。所以无需为多条记录编写 GET calll
  • 嗨 Ashish,在添加了一个控制器类并添加了 List 后,我​​能够发布多条记录。但最终我也不得不编写 GET 方法,因为我相信使用控制器我覆盖了默认的 Spring Boot impl

标签: java spring mongodb spring-boot


【解决方案1】:

我认为在 Controller 方法中,您将简单对象定义为参数,您只需将对象列表 (List<Object>) 定义为参数而不是简单对象。

例子:

@PostMapping
public void save(List<People> peoples){
}

【讨论】:

  • 谢谢@Devendra Kumar。使用 List 对象添加控制器后,我能够发布多条记录。
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多