मैं मोंगोस का उपयोग कर रहा हूं और मैं क्लाइंट को JSON प्रतिक्रिया भेजने से पहले अपने मोंगोस इंस्टेंस से _id
संपत्ति को हटाना चाहता हूं।मोंडोस ऑब्जेक्ट्स और हटाना गुणों के अंडरस्कोर क्लोनिंग काम नहीं कर रहे हैं?
उदाहरण:
var ui = _.clone(userInvite);
delete ui["_id"];
console.log(JSON.stringify(ui)); //still has "_id" property, why?
पिछले काम नहीं किया।
हालांकि, अगर मैं ऐसा:
var ui = JSON.parse(JSON.stringify(userInvite)); //poor man's clone
delete ui["_id"];
console.log(JSON.stringify(ui)); //"_id" is gone! it works!
मुझे समझ नहीं आता क्यों का उपयोग कर अंडरस्कोर काम नहीं करता है एक क्लोन वस्तु पर delete
बुला, लेकिन अगर मैं hacky JSON.string/JSON.parse करते हैं, यह काम करता हैं।
इस व्यवहार पर कोई विचार?
शायद नेवला आप trolling और 'एक संपत्ति के रूप में एक गेटर/सेटर के रूप में _id' को लागू करने के बजाय तो है करने के लिए लागू होता है परिवर्तन । 'ऑब्जेक्ट.getOwnPropertyDescriptor (userInvite, "_id") आज़माएं। – Raynos
क्लोनिंग mongoose ऑब्जेक्ट के किसी भी गुण को संशोधित करना असंभव है। – Hill