मुझे दस्तावेजों के संग्रह के माध्यम से खोजने की ज़रूरत है, लेकिन किसी भी उप-दस्तावेज और प्रत्येक घटना में "एन" से "एन-जीबी" नामक एक फ़ील्ड का नाम बदलना है, मैंने इस कोड को आजमाया है लेकिन जावास्क्रिप्ट निष्पादन प्राप्त करना जारी रखा है: रेंज एरर: अधिकतम कॉल स्टैक आकार त्रुटि से अधिक है। समस्या पथ जानने के बिना फ़ंक्शन का उपयोग करके उप-दस्तावेज़ों के माध्यम से खोज रही है।मोंगोब रिकर्सिव खोज
remap = function (x) {
if (x.en){
db.products.update({_id:x._id}, {$rename:{"en":"en-GB"}}, false, true); }
for (var propt in x) {
if (Object.prototype.toString.call(x[propt]) === '[object Array]' ||
Object.prototype.toString.call(x[propt]) === '[object Object]'){
remap(x[propt]);
}
}
}
मैं भी इसी तरह की है कि बजाय एक कतार में शामिल करता है एक सरणी का उपयोग कर कुछ लिखा है, लेकिन इस तरह के "document.subdocument" के रूप में उप दस्तावेजों पथ सहेजने और फिर चलाने का कोई तरीका होना चाहिए यह फिर से क्षेत्र के लिए जांच के लिए समारोह के माध्यम से।
वस्तु में एक परिपत्र संदर्भ हो सकता है? एक्स को वाई अंक, वाई अंक जेड, जेड एक्स को इंगित करता है? इससे एक ढेर अतिप्रवाह होगा। – Brandon
आपको 'propt' के मान के बजाय 'x [propt]' का उपयोग करना चाहिए, क्योंकि यह केवल 'x' की संपत्ति का नाम है। – WiredPrairie