Aggiornamento: Se tutto ciò che devi fare è modificare la struttura di un documento senza modificare i valori, consulta la risposta di gipset per una buona soluzione.
Secondo un commento (ora non disponibile) nella pagina della documentazione Aggiorna, non puoi fare riferimento alle proprietà del documento corrente da un update()
.
Dovrai scorrere tutti i documenti e aggiornarli in questo modo:
db.events.find().snapshot().forEach(
function (e) {
// update document, using its own properties
e.coords = { lat: e.lat, lon: e.lon };
// remove old properties
delete e.lat;
delete e.lon;
// save the updated document
db.events.save(e);
}
)
Tale funzione può essere utilizzata anche in un lavoro di riduzione della mappa o in un db.eval()
lato server lavoro, a seconda delle tue esigenze.