Deleting Documents from a Collection
If you wish to permanently delete documents from a collection, it is
quite easy to do so. The PyMongo Collection object has a remove() method. As with reads and updates, you
specify which documents you want to remove by way of a document spec. For
example, to delete all documents from the users collection with a score of
1, you would use the following code:
# Delete all documents in user collection with score 1
dbh.users.remove({"score":1}, safe=True)Note that the remove() method
takes a safe parameter. As mentioned in
the earlier section “Write to a Collection Safely and Synchronously”, it
is recommended to set the safe
parameter to True on write methods to
ensure the operation has completed. It is also worth noting that remove() will not raise any exception or error
if no documents are matched.
Finally, if you wish to delete all documents in a collection, you
can pass None as a parameter to remove():
# Delete all documents in user collection dbh.users.remove(None, safe=True)
Clearing a collection with remove() differs from dropping the collection
via drop_collection() in that the
indexes will remain intact.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access