2010-12-28 16 views
10

Grüße,Entfernen mehrerer Dokumente MongoDB in Python

ich mehrere Dokumente aus einer MongoDB Sammlung zu entfernen bin versucht, die folgende Syntax. Ich weiß nicht, ob dies richtig ist, wie ich es irgendwo im Internet gefunden und nicht in der Lage, etwas zu finden, da die Legitimität dieses Textes der Durchsetzung:

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

Ich würde der obige Code erwartet beide entfernen Dokumente mit einem "sku" -Wert von "100-00" oder "200-00", aber leider sind beide Dokumente noch in der Sammlung vorhanden. Ich habe auch versucht, den "SKU" -Schlüssel und seinen Wert zu Unicode zu werfen, wie ich weiß, dass sie in dieser Kodierung gespeichert werden. Wie Sie sehen können, aktiviere ich auch den abgesicherten Modus, um sicherzustellen, dass auf der Server-Seite nichts passiert.

Jede Hilfe wird geschätzt, danke!

Antwort

12

Sie können dies tun, indem Sie $ oder/$ in Operatoren verwenden.

Versuchen Sie folgendes:

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

oder

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

Das ist genau das, was ich brauchte, danke viel !! :) –

+0

Danke. Mit $ in hat nicht für mich gearbeitet, aber $ oder funktioniert super! –

+3

Ah, BTW, in pymongo (oder Python selbst) müssen bedingte Operatoren ($ in und $ oder in diesem Fall) als String verwendet werden, andernfalls wird SyntaxError zurückgegeben. '$ oder' und '$ in'. –

Verwandte Themen