2010-12-28 37 views
10

Lời chào,Xóa nhiều tài liệu MongoDB bằng Python

Tôi đang cố xóa nhiều tài liệu khỏi bộ sưu tập MongoDB bằng cú pháp sau. Tôi không biết nếu điều này là đúng như tôi tìm thấy nó ở đâu đó trên internet và đã không thể tìm thấy bất cứ điều gì kể từ khi thực thi tính hợp pháp của tuyên bố này:

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

tôi mong chờ các mã trên sẽ loại bỏ tất cả tài liệu bao gồm giá trị 'sku' là '100-00' hoặc '200-00' nhưng rất tiếc cả hai tài liệu vẫn xuất hiện trong bộ sưu tập. Tôi cũng đã cố gắng đúc cả khóa 'sku' và giá trị của nó thành Unicode như tôi biết chúng được lưu trữ trong bảng mã này. Như bạn có thể nói tôi cũng cho phép chế độ an toàn đảm bảo rằng không có gì ngoài dòng xảy ra ở phía máy chủ.

Bất kỳ trợ giúp nào được đánh giá cao, cảm ơn bạn!

Trả lời

12

Bạn có thể làm như vậy bằng cách sử dụng $ hoặc/$ trong toán tử.

Hãy thử điều này:

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

hoặc

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

Đây chính là những gì tôi cần, cảm ơn bạn nhiều !! :) –

+0

Cảm ơn. Với $ trong không làm việc cho tôi, nhưng $ hoặc hoạt động tuyệt vời! –

+3

Ah, BTW, trong pymongo (hoặc Python chính nó) điều hành có điều kiện ($ trong và $ hoặc trong trường hợp này) cần phải được sử dụng như một chuỗi, nếu không nó sẽ trả về SyntaxError. '$ hoặc' và '$ in'. –

Các vấn đề liên quan