MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:aggiornamento di documenti utilizzando i dati dello stesso documento

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.