首页 > 解决方案 > 更新 mongodb 集合中的特定数组

问题描述

我的 Mongo 中有一个锦标赛集合,其中有一个文档“第 6 版”。在本文档中,有一个如下所示的数组字段:-

TeamDetails[0]:
[
TeamName : Team 1,
TeamOwner : Name,
]
TeamDetails[1]:
[
TeamName : Team 2,
TeamOwner : Name
]

Teamdetails 数组中总共有 10 个这样的元素。每个元素的 teamname 字段都是唯一的。无论如何我只能使用查询来更新一个元素,以根据团队名称进行识别?

就在更新之前,我有一组变量与数据一起进入这个模块。我想将这些变量更新为与团队名称匹配的特定数组。我知道使用 $push 运算符,但是我如何专门查询以更新 10 个元素中的那个元素。这可能吗?我正在使用带有 Node js 的猫鼬

标签: mongodbmongoose

解决方案


您的锦标赛收藏,例如:

_id: 123456

TeamDetails: [

  {
    TeamName : Team 1,
    TeamOwner : Name,
  },
  {
    TeamName : Team 2,
    TeamOwner : Name,
  }

]

Tournament.updateOne({ _id: 123456, 'TeamDetails.TeamName': 'Team 1' }, 
                     { '$set': { 'TeamDetails.$.TeamOwner': 'Hello'} });

结果将是:

_id: 123456

TeamDetails: [

  {
    TeamName : Team 1,
    TeamOwner : Hello,
  },
  {
    TeamName : Team 2,
    TeamOwner : Name,
  }

]

有关更多详细信息,您可以在此文档中阅读


推荐阅读