Node.js: aggiornare i documenti embedded contenuti in un array di un documento di MongoDB

Node.js: aggiornare i documenti embedded contenuti in un array di un documento di MongoDB

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) => {
    //...
});

Torna su