In Node.js possiamo aggiornare gli oggetti embedded contenuti in un array di un documento di MongoDB.
Un documento in MongoDB può a sua volta contenere uno o più array di documenti annidati (embedded). Per aggiornare una proprietà di uno di questi documenti
annidati occorre innanzitutto selezionare il documento genitore e quindi accedere alla proprietà del sottodocumento utilizzando l'operatore $
.
Dato il seguente documento della collezione products:
{
id: 10,
price: 50.20,
attributes: [
{
name: 'foo',
id: 2
},
{
name: 'test',
id: 3
}
]
}
Possiamo implementare la seguente soluzione:
products.findOneAndUpdate({id: 10, 'attributes.name': 'test'}, {$set: {'attributes.$.id': 5}}, (err, doc) => {
//...
});