2010-12-28 8 views
10

अभिवादन में कई MongoDB दस्तावेजों,निकाला जा रहा है अजगर

मैं निम्न सिंटैक्स का उपयोग कर एक MongoDB संग्रह से एक से अधिक दस्तावेज़ को निकालने का प्रयास कर रहा हूँ। मैं अगर यह सही है के रूप में मैं इसे कहीं इंटरनेट पर पाए पता नहीं है और नहीं इस बयान की वैधता को लागू करने के बाद से कुछ भी खोजने के लिए सक्षम किया गया है:

pymongo_collection_object.remove(
    [ 
     { 
      'sku': '100-00' 
     }, 
     { 
      'sku': '200-00' 
     } 
    ] 
, safe=True) 

मैं उम्मीद होती है इसके बाद के संस्करण कोड दोनों हटा '100-00' या '200-00' के 'sku' मान सहित दस्तावेज़, लेकिन दुर्भाग्य से दोनों दस्तावेज़ संग्रह के भीतर मौजूद हैं। मैंने यूनिकोड को 'स्कू' कुंजी और उसके मूल्य दोनों कास्टिंग करने का भी प्रयास किया क्योंकि मुझे पता है कि वे इस एन्कोडिंग में संग्रहीत हैं। जैसा कि आप बता सकते हैं कि मैं सुरक्षित मोड को भी सक्षम कर रहा हूं यह सुनिश्चित करना कि सर्वर की ओर से लाइन से कुछ भी नहीं हो रहा है।

किसी भी मदद की सराहना की है, धन्यवाद!

उत्तर

12

आप ऑपरेटरों में $ या $ $ का उपयोग करके ऐसा कर सकते हैं।

इस प्रयास करें:

pymongo_collection_object.remove({'$or': [{'sku': '100-00'}, {'sku': '200-00'}]}, safe=True) 

या

pymongo_collection_object.remove({'sku': {'$in': ['100-00', '200-00']}}, safe=True) 
+0

यह ठीक है कि मैं क्या जरूरत है, तो आप बहुत धन्यवाद !! :) –

+0

धन्यवाद। $ के साथ मेरे लिए काम नहीं किया, लेकिन $ या महान काम करता है! –

+3

आह, बीटीडब्लू, पिमोंगो (या पायथन स्वयं) में सशर्त ऑपरेटर ($ और $ या इस मामले में) को स्ट्रिंग के रूप में उपयोग करने की आवश्यकता है, अन्यथा यह सिंटेक्स त्रुटि देता है। '$ या' और '$ इन'। –