2017-12-13 25 views
0

私のアプリでnode.jsとmongooseを使用しています。 私は1つのスキーマとサブスキーマを持っています。moongooseを使用してサブ文書配列内の特定の要素を更新するにはどうすればよいですか?

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

http://mongoosejs.com/docs/subdocs.html https://stackoverflow.com/questions/33049707/push-items-into-mongo-array-via-mongoose – Li357

答えて

0

Parent.findOne({ _id: parentId}).exec() 
.then(parent => { 
    return parent.children.push(childToUpdate).save(); 
}); 
関連する問題