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

MongoDB:Opdatering af dokumenter ved hjælp af data fra samme dokument

Opdatering: Hvis alt du skal gøre er at ændre strukturen af ​​et dokument uden at ændre værdierne, se gipsets svar for en god løsning.

Ifølge en (nu utilgængelig) kommentar på siden Opdater dokumentation, kan du ikke referere til det aktuelle dokuments egenskaber fra en update() .

Du bliver nødt til at gentage alle dokumenterne og opdatere dem på denne måde:

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 også bruges i et kort-reducerende job eller en server-side db.eval() job, afhængigt af dine behov.



  1. Omdøb et felt i forespørgselsresultaterne i MongoDB

  2. Visuel styring af MongoDB-dokumenter og samlinger

  3. Implementering og konfiguration af MongoDB Shards med Ansible

  4. Mest populære NoSQL-databaser understøttet af ClusterControl