【问题标题】: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
})

感谢大家的帮助

【问题讨论】:

标签: javascript node.js mongodb mongoose mongoose-schema


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-08-05
    • 2015-06-03
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2018-03-14
    • 2019-09-30
    相关资源
    最近更新 更多