2010-12-28 20 views
10

Saludos,Extracción de múltiples documentos MongoDB en Python

que estoy tratando de eliminar varios documentos de una colección MongoDB utilizando la siguiente sintaxis. No sé si esto es correcto ya que encontramos en algún lugar en internet y no he podido encontrar nada desde la aplicación de la legitimidad de esta declaración:

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

yo esperaría que el código anterior podría eliminar tanto documentos que incluyen un valor 'sku' de '100-00' o '200-00' pero desafortunadamente ambos documentos todavía están presentes en la colección. También intenté convertir la clave 'sku' y su valor en Unicode, ya que sé que están almacenados en esta codificación. Como puede ver, también estoy habilitando el modo seguro para garantizar que no haya nada fuera de línea en el lado del servidor.

¡Se agradece cualquier ayuda, gracias!

Respuesta

12

Puede hacerlo usando operadores $ o/$ en.

Prueba esto:

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

o

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

Esto es exactamente lo que necesitaba, gracias mucho !! :) –

+0

Gracias. ¡Con $ in no funcionó para mí, pero $ o funciona muy bien! –

+3

Ah, BTW, en pymongo (o Python mismo) operadores condicionales ($ in y $ o en este caso) deben utilizarse como una cadena, de lo contrario, devuelve SyntaxError. '$ o' y '$ in'. –

Cuestiones relacionadas