Ben Hirschberg
Ben Hirschberg

Reputation: 1500

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

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 :) )

Upvotes: 1

Views: 341

Answers (2)

Erenn
Erenn

Reputation: 683

   db.collection.deleteMany({
      "array_field": {
        $in: [
          "id1"
        ]
      }
    })

Check the mongoplayground link: https://mongoplayground.net/p/nkhSCRyR9K-

https://www.mongodb.com/docs/manual/reference/operator/query/

Upvotes: 1

raphael.oester
raphael.oester

Reputation: 445

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")

Upvotes: 1

Related Questions