如何更新猫鼬模式中另一个数组内的数组内的对象?

Posted

技术标签:

【中文标题】如何更新猫鼬模式中另一个数组内的数组内的对象?【英文标题】:How to update an object inside an array inside another array in a mongoose schema? 【发布时间】:2020-08-02 00:13:51 【问题描述】:

在这里找到了很多类似的问题,但没有答案。

问题

假设我有以下猫鼬模式:

const mySchema = new mongoose.Schema(
  sanePeoplesField: String,
  comments: [
    normalStuff: type: Date, default: Date.now,
    damNestedAgain: [String]
  ]
)

回顾一下,damNested array 在架构上的 comments array 内。

如果我很幸运并且想要更改 normalStuff(数组中的 obj),我会这样做:

mySchema.findOneAndUpdate("comments._id": req.body.commentId,

    $push:
    
      comments:  normalStuff: 12122020  
    
)

这会用新值更新 normalStuff。

但是,我需要更新damNestedAgain 中的一个字段,但不知道如何访问它!

问题

在我的示例中,如何更新嵌套数组damNestedAgain 的嵌套数组?

【问题讨论】:

【参考方案1】:
mySchema.findOneAndUpdate("comments._id": req.body.commentId,

    $push:
    
      "comments.$.damNestedAgain": req.body.commentId
    
)

成功了,谢谢。

【讨论】:

以上是关于如何更新猫鼬模式中另一个数组内的数组内的对象?的主要内容,如果未能解决你的问题,请参考以下文章

将值推送到猫鼬模式中对象内的数组

使用投影或选择更新猫鼬文档中对象数组内的对象

如何在猫鼬模型内的数组中查找对象?

如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段

如何通过猫鼬(javascript)中的多个值查询数组内的对象?

(猫鼬)如何在用户集合中搜索会话数组属性内的对象内的令牌