2015-10-05 6 views
5

से PyMongo में दस्तावेज़ हटाना मैं एक दस्तावेज़ को हटाने का सही रास्ता खोजने के लिए संघर्ष कर कर रहे हैं। अर्थात। क्या मुझे उदाहरण के लिए हटाएं() या delete_one() का उपयोग करना चाहिए और आईडी द्वारा हटाने की कैननिकल विधि भी है, जो string है।आईडी

आईई।

mongo.db.xxx.delete_one({'_id': { "$oid" : str(_id) } }) 

या मैं एक प्रारूप का उपयोग कर सकते हैं: मैं निम्नलिखित का उपयोग कर किया जाना चाहिए?

mongo.db.xxx.remove({'_id': { "$oid" : str(_id) } }) 
mongo.db.xxx.remove({'_id': ObjectId(_id) }) 

कैनोलिक रूप क्या है?

उत्तर

15

remove pymongo की 3.x रिलीज में हटा दिया गया है, इसलिए वर्तमान विहित प्रपत्र delete_one उपयोग करने के लिए होगा: एक DeleteResult जिसमें आप deleted_count क्षेत्र देखने के लिए निरीक्षण कर सकते हैं

from bson.objectid import ObjectId 

result = mongo.db.xxx.delete_one({'_id': ObjectId(_id)}) 

कॉल रिटर्न यह

+0

धन्यवाद नष्ट करने के लिए एक दस्तावेज मिला, तो आपको त्रुटि अपवाद में पता है? मैं इस समय डीबग नहीं कर सकता। अर्थात। अगर आईडी नहीं मिली है। – disruptive

+0

जब मैं कमांड लाइन पर इस कोशिश, मैं निम्नलिखित मिलती है: 'NameError: नाम 'ObjectId' – disruptive

+0

defined' नहीं है @Navonod आप आयात करने के लिए है कि यदि आप पहले से ही कर रही नहीं कर रहे हैं की जरूरत है। अद्यतन उत्तर देखें। – JohnnyHK