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

如何更新mongoDB中的数组元素

涂溪叠
2023-03-14

我有一个以下格式的mongodb文档。如何基于父属性_id更新数组中第一个元素的rolename字段。

{
  _id: 1,
  abc: [
    {
      roleid: 100,
      rolname: "xyz role"
    }
  ]
}

共有2个答案

周飞
2023-03-14
js prettyprint-override">db.collections.updateOne(
  { _id: 1 },
  { $set: { 'abc.$.rolename': 'new value' } }
);
宗波涛
2023-03-14

您可以像这样使用位置运算符$):

db.collection.update({
  "abc.rolname": "xyz role"
},
{
  "$set": {
    "abc.$.rolname": "new rolename"
  }
})

这里的例子

 类似资料:
  • 我正在尝试更新mongob文档中数组中包含的单个子元素。我想使用其数组索引引用该字段(数组中的元素没有任何我可以保证将是唯一标识符的字段)。似乎这应该很容易做到,但我无法弄清楚语法。 这是我想在伪json中做的事情。 之前: 之后: 似乎查询应该是这样的: 但这行不通。我花了很长时间搜索mongodb文档,并尝试了这种语法的不同变体(例如,使用,等等)。我找不到任何关于如何在MongoDB中完成这

  • 我是否可以在具有的数组中嵌入对象的数组的第二个元素? 结果:

  • 问题内容: 我有以下mongodb文件结构: 我已经能够使用$ elemMatch来更新操作中的字段,但是当我尝试对参数执行相同的操作(修改)时,它似乎不起作用。我想知道我应该尝试哪种其他方法,以便能够成功更新特定参数中的字段(通过其pid查找)。 我当前拥有但不起作用的更新代码如下所示: 问题答案: MongoDB 3.6及更高版本 MongoDB3.6及更高版本提供了一项新功能,该功能允许您使

  • 问题内容: 我读过这篇文章和同一个人的这篇文章,说您无法更新数组元素。 我还阅读了最近的一篇文章,有人说可以用某种方式完成此操作,但是我在文档中都无法获得有关stackoverflow的任何信息。 有什么办法可以解决这个问题?谢谢! 问题答案: 实际上,写这些答案的“家伙”是我:)那时,还没有一种更新数组元素的方法。只能存储数组,而 不能 更新数组成员。 现在,在更新文档时,您可以将第二个参数传递

  • 本文向大家介绍如何限制MongoDB中的数组子元素?,包括了如何限制MongoDB中的数组子元素?的使用技巧和注意事项,需要的朋友参考一下 您可以使用$slice运算符来限制数组。让我们创建包含文档的集合。以下是查询 以下是在方法的帮助下显示集合中所有文档的查询 这将产生以下输出 以下是限制MongoDB中的数组子元素的查询。以下查询将仅显示最后10个元素 以下是显示10个PlayerGameSc

  • 我已经阅读了尽可能多的关于如何在MongoDB中正确更新数组中的元素的文章(比如这篇:Mongoose,更新对象数组中的值),并认为我已经遵循了所有的建议,但我仍然犯了错误,如果有人能发现我的错误,我将非常感激,因为我已经试着调试了几个小时! 我特别遇到的问题是findOneAndUpdate调用似乎只是更新“inventureItems”数组中的第一个元素,不管它是否匹配我对特定元素的查询。 我