我在我的应用中使用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
})
感谢大家的帮助
答案 0 :(得分:0)
当您使用Mongoose时,如果您想添加新的孩子,您可以利用猫鼬功能
Parent.findOne({ _id: parentId}).exec()
.then(parent => {
return parent.children.push(childToUpdate).save();
});