sql >> Database >  >> NoSQL >> MongoDB

MongoDB:documenten bijwerken met gegevens uit hetzelfde document

Bijwerken: Als je alleen de structuur van een document hoeft te veranderen zonder de waarden te veranderen, zie het antwoord van gipset voor een mooie oplossing.

Volgens een (nu niet beschikbaar) commentaar op de Update documentatie pagina, kun je niet verwijzen naar de eigenschappen van het huidige document vanuit een update() .

U moet alle documenten doorlopen en ze als volgt bijwerken:

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

Een dergelijke functie kan ook worden gebruikt in een kaartverkleinende taak of een server-side db.eval() baan, afhankelijk van uw behoeften.



  1. Hoe voer ik een MongoDB js-script uit met behulp van de Java MongoDriver

  2. Stackexchange.redis mist de WAIT-ondersteuning

  3. MongoDB - Een verzameling maken

  4. Waarom wordt het niet aanbevolen om server-side opgeslagen functies in MongoDB te gebruiken?