Ciao Lorenzo, io sono appena arrivato e forse sono il meno indicato nel risponderti.
Da quello che ho capito non c'è possibilità di modificare elementi di array embedded, ho lo stesso problema anche io e non ho trovato niente di utile.
Adesso volevo capire se poter utilizzare un altro approccio:
in pratica vorrei estrapolare (seguendo il tuo esempio) l'array "in_stiva", modificarlo e poi "ributtarlo" dentro con un $set
L'altra possibilità (che ha poi anche suggerito Alberto in un video) è quello di cambiare lo schema, ovvero l'array "in_stiva" lo estrapoli e lo metti in un'altra collection (ovviamente col riferimento all'id della "strutture".
Insomma, solo idee e nulla di concreto. Se qualcuno ha qualche linea di codice da proporre ne saremmo contenti!!
Matteo
ciao Lorenzo,
non so se l'hai risolto ma la query dovrebbe essere questa:
db.tuaCollezione.update( {"_id": "iddiDocumento" },
{$set: { "elementi_attivi.strutture.0.in_stiva.0.id" : 88 }}
)
ovviamente ci devi mettere l'id del documento che intendi modificare.
Stai attento che:
"elementi_attivi.strutture.0" fa riferimento al primo elemento dell' array "strutture"
"in_stiva.0" fa riferimento al primo elemento dell'array in "in_stiva"
fammi sapere