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.