【问题标题】:mongoose update value in array of objects at elements that match a condition猫鼬更新对象数组中匹配条件的元素的值
【发布时间】:2021-09-23 21:46:45
【问题描述】:

我有一个模式,每个模式都包含一个看起来像这样的数组:

path:[
    null,
    {_id: AAAAA, name: name1},
    {_id: BBBBB, name: name2},
    {_id: CCCCC, name: name3}
]

(第一个元素始终为空,长度未知且值看起来不像这样)

我想更改这些数组中每个元素的“名称”属性如果“_id”属性等于一个变量。

我无法做到这一点,我们将不胜感激!

【问题讨论】:

  • @CuongLeNgoc 嘿,谢谢,这对我有用,介意将其发布为答案以便我接受吗?
  • 我认为它已在其他问题中得到回答,因此没有必要重复回答。

标签: javascript arrays mongoose schema aggregate


【解决方案1】:

回答任何寻找相同事物的人:

 Item.updateMany({"path._id": update._id},
    { $set: { 'path.$[element].name':  update.newName} },
    { arrayFilters: [{ 'element._id': mongoose.Types.ObjectId(update._id) }] }
 )

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2020-10-22
    • 2022-01-03
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2019-09-14
    • 2015-01-13
    • 2021-12-28
    相关资源
    最近更新 更多