2012-04-13 9 views
33

मुझे किसी विशेष संग्रह में प्रत्येक प्रविष्टि से एक निश्चित कुंजी और मूल्य हटाने की आवश्यकता है। मैंने हटा दिया है और ऐसा लगता है कि यह केवल पूरी प्रविष्टियों के लिए है। अद्यतन को देखते हुए, मुझे विश्वास नहीं है कि एक विशेष कुंजी को नल या रिक्त स्ट्रिंग के साथ अपडेट करना जो मैं करने की कोशिश कर रहा हूं उसे प्राप्त करेगा। मैं मोंगोडब के साथ बहुत शुरुआत कर रहा हूं, इसलिए कृपया मेरी अज्ञानता से क्षमा करें।मौजूदा मोंगोडीबी प्रविष्टि से एक कुंजी/मूल्य हटाना

लंबी कहानी संक्षेप में, मैं कैसे बदल सकते हैं

{ 
    "_id" : 1234, 
    "name" : "Chris", 
    "description" : "Awesome" 
} 

{ 
    "_id" : 1234, 
    "name" : "Chris" 
} 

में

प्रविष्टि को हटाने और एक नया बनाने के लिए, या किसी भी गैर MongoDB आदेशों का उपयोग किए बिना? धन्यवाद!

+0

की संभावित डुप्लिकेट की कोशिश [मैं मोंगो से पूरी तरह से एक क्षेत्र को दूर कैसे करते हैं?] (Http://stackoverflow.com/questions/6851933/कैसे-करें-i-remove-a-field-fully-from-mongo) –

उत्तर

68

update() पर कॉल में $unset आज़माएं।

दूसरे शब्दों में,

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} });

काम करना चाहिए। Link

+1

धन्यवाद! यह पूरी तरह से काम किया। – Chris

+15

संग्रह में सभी दस्तावेज़ों को अपडेट करने के लिए आप इसका उपयोग कर सकते हैं: 'db.collection_name.update ({}, {$ unset: {description: 1}}, false, true); 'अंतिम दस्तावेज़ कई दस्तावेज़ों के लिए है –

+2

नए संस्करण एक और पठनीय प्रारूप का समर्थन करें: 'db.example.update ({}, {$ अनसेट: {शब्द: 1}}, {बहु: सत्य})' – phocks

-5

upsert() के बारे में भी सोचें जो _id मौजूद नहीं है या मौजूदा दस्तावेज़ को अपडेट करते समय एक नया दस्तावेज़ के रूप में अपनी पंक्ति डालेंगे।

2

एक पैकेज को संदर्भित करने के लिए और विभिन्न "कुंजी" निकालने के लिए, इस

db['name1.name2.name3.Properties'].remove([ { "key" : "name_key1" }, { "key" : "name_key2" }, { "key" : "name_key3" })] 
संबंधित मुद्दे