Mise à jour : Si tout ce que vous avez à faire est de modifier la structure d'un document sans modifier les valeurs, consultez la réponse de gipset pour une solution intéressante.
Selon un commentaire (maintenant indisponible) sur la page de documentation de mise à jour, vous ne pouvez pas référencer les propriétés du document actuel à partir d'un update()
.
Vous devrez parcourir tous les documents et les mettre à jour comme ceci :
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);
}
)
Une telle fonction peut également être utilisée dans un travail de réduction de carte ou un db.eval()
côté serveur travail, selon vos besoins.