अपडेट करें: यदि आपको केवल मूल्यों को बदले बिना किसी दस्तावेज़ की संरचना को बदलना है, तो एक अच्छे समाधान के लिए जिप्सेट का उत्तर देखें।
अद्यतन दस्तावेज़ीकरण पृष्ठ पर एक (अब अनुपलब्ध) टिप्पणी के अनुसार, आप वर्तमान दस्तावेज़ के गुणों को update()
के भीतर से संदर्भित नहीं कर सकते हैं ।
आपको सभी दस्तावेज़ों के माध्यम से पुनरावृति करनी होगी और उन्हें इस तरह अपडेट करना होगा:
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);
}
)
इस तरह के फ़ंक्शन का उपयोग मैप-रिड्यूस जॉब या सर्वर-साइड db.eval()
में भी किया जा सकता है। नौकरी, आपकी आवश्यकताओं के आधार पर।