当前位置: 首页 > 知识库问答 >
问题:

MongoTemplate更新为同一文档在数组中设置多个对象

董俊晖
2023-03-14

我有一个接受文档ID的endpoint,以及一个嵌套数组中希望更新的Employee对象。这很好用。我试着修改endpoint,让它一次更新一个以上的员工,但我不能让它工作。我不确定是我把格式搞错了,还是不可能。

{
  "id": <ID>
  ...
  "employeeList": [
  {
    "employeeId": <Employee_ID>,
    ...
  }
  ...
  ]
}
Query query = new Query().addCriteria(new Criteria("id").is(id))
      .addCriteria(new Criteria("employeeList.employeeId").is(employee.getEmployeeId());
update.set("employeeList.$", employee);

UpdateResult result = mongoTemplate.updateFirst(query, update, Census.class);

我能做吗?唯一的其他选项是连续多次更新此文档吗?我认为这样做比调用endpointX次要好。我在Mongo3.6以防影响任何答案。蒂娅。

共有1个答案

陈斌
2023-03-14

对不起,你的帖子不清楚。您显示数组字段EmployeeList-您是否试图向数组添加值?是单个文档还是所有文档?

如果不向现有数组字段添加值-那么您是否正在向所有文档添加一个新字段?

 类似资料:
  • 给定对象数组: 如何构造查询,以便在DB中更新每个文档的名称字段,其中文档的id等于数组对象中的\u id? 这必须在单个查询中完成。查询必须使用mongoDB节点驱动程序语法。 例如:

  • 假设我们有以下集合,我对此没有什么问题: > 我想增加“item_name”的价格:“my_item_two”,如果它不存在,应该将它追加到“items”数组中。

  • 我想使用mongoose从多个文档更新多个子文档。 我目前的代码是: 模式的一部分是: 但是这段代码只更新id arr中的最后一个元素。

  • 本文向大家介绍MongoDB中一次查询更新多个文档,包括了MongoDB中一次查询更新多个文档的使用技巧和注意事项,需要的朋友参考一下 要通过单个查询更新许多文档,请在MongoDB中使用 bulkWrite()。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是使用MongoDB中的一个查询来更新许多文档的查询- 在find()方法的帮助

  • 我正在尝试在我的Mongo数据库中插入一个新文档,如下所示: 正在工作,但不是我想要的。 “json”是一个对象数组,如下所示: 所以,我的代码为object创建了一个文档,我只想创建一个文档,其中包含一个名为json的属性中的对象: 这可能吗? 我试图使用插入,也。 谢谢。

  • 我需要更新Mongo DB中另一个文档内的数组中的一个文档