Pembaruan: Jika Anda hanya perlu mengubah struktur dokumen tanpa mengubah nilainya, lihat jawaban gipset untuk solusi yang bagus.
Menurut komentar (sekarang tidak tersedia) di halaman dokumentasi Pembaruan, Anda tidak dapat mereferensikan properti dokumen saat ini dari dalam update()
.
Anda harus mengulangi semua dokumen dan memperbaruinya seperti ini:
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);
}
)
Fungsi seperti itu juga dapat digunakan dalam pekerjaan pengurangan peta atau db.eval()
sisi server pekerjaan, tergantung kebutuhan Anda.