sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:Uppdatering av dokument med data från samma dokument

Uppdatering: Om allt du behöver göra är att ändra strukturen på ett dokument utan att ändra värdena, se gipsets svar för en bra lösning.

Enligt en (nu otillgänglig) kommentar på sidan Uppdatera dokumentation kan du inte referera till det aktuella dokumentets egenskaper från en update() .

Du måste gå igenom alla dokument och uppdatera dem så här:

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);
  }
)

En sådan funktion kan också användas i ett kartreducerande jobb eller en db.eval() på serversidan jobb, beroende på dina behov.



  1. Så här gör du:Hantera HBase-data via Hue

  2. Hur jämförs Morphia-, Mongo4j- och Spring-data för MongoDB?

  3. MongoDB Duplicera dokument även efter att ha lagt till unik nyckel

  4. Hur man fixar Redis-nycklar som serialiserats med Java