Deleting a multiple documents in a MongoDB collection by a nested array element

Viewed 18

I am new to Mongo and I have a question about deleting documents using PyMongo.

I have a collection called mycollection. It has documents looking like this:

{
    "field1":"value1",
    "field2":"value2",
    "array_field": [
        "id1",
        "id2
    ]
}

I want to delete all documents in the collection which has id1 in the array_field.

How can I do this? (I am using PyMongo, I would appreciate examples based on it :) )

2 Answers

this should do

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

mydb = client["DATABASE"]
col = mydb["mycoll"]
 
query = {"array_field": "id1"}
d = col.delete_many(query)
 
print(f"{d.deleted_count} documents deleted")
Related