如何使用猫鼬更新子文档数组中的特定元素? [复制]

Posted

技术标签:

【中文标题】如何使用猫鼬更新子文档数组中的特定元素? [复制]【英文标题】:How to update a specific element inside a sub-document array using moongoose? [duplicate] 【发布时间】:2018-05-27 12:57:39 【问题描述】:

我在我的应用程序中使用 node.js 和 mongoose。 我有一个架构和一个子架构。

const childrenSchema = new mongoose.Schema(
  name:  type: String, required: true, trim: true ,
  hobbies: [String]
)

const parentSchema  = new mongoose.Schema(
  name: 
   type: String, trim: true, required: true,
  ,
  children: [childrenSchema],
)

const parent = mongoose.model('parent', parentSchema)

我想更改父母中的特定孩子。 我尝试过这样的事情:

const parentId = '1234'

const childToUpdate = 
  _id: '8765432',
  hobbies: ['guitar', 'javascript']


Parent.findOneAndUpdate( _id: parentId,  $set:  children:  
 childToUpdate   ,
 fields:  children: 1 , new: true
)

感谢大家的帮助

【问题讨论】:

mongoosejs.com/docs/subdocs.html***.com/questions/33049707/… 【参考方案1】:

当你使用 Mongoose 时,如果你想添加一个新的孩子,你可以利用 mongoose 的特性

Parent.findOne( _id: parentId).exec()
.then(parent => 
   return parent.children.push(childToUpdate).save();
);

【讨论】:

以上是关于如何使用猫鼬更新子文档数组中的特定元素? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在猫鼬中保存子文档的数组?

如何更新具有嵌入文档的猫鼬数组中的许多元素

如何使用猫鼬复制字段数据并在同一文档的另一个字段中使用它?

查询父项时如何获取猫鼬子文档数组中的值的聚合总和?

使用 Mongoose 更新数组中的子文档

在文档数组猫鼬中获取精确的子文档