How to Delete Documents in MongoDB with PHP

Deleting records in MongoDB is a common task. You might need to clear old data, remove outdated entries, or handle sensitive information for compliance. Let’s go step by step to see how you can delete documents from MongoDB using PHP.

Deleting a Single Document

Sometimes, you only need to delete a specific document. For instance, let’s say you want to delete a user with a specific email address. Here is how you can do it:

$deleteResult = $collection->deleteOne([
    'email' => '[email protected]'
]);

echo "Deleted " . $deleteResult->getDeletedCount() . " document(s).";

In this example:

  • The deleteOne method is used to delete the first document matching the query.
  • The query specifies the criteria for deletion (email => '[email protected]').
  • The getDeletedCount method returns the number of documents deleted.

Anyway, in the following section, you will learn how to delete multiple documents in MongoDB in PHP.

Deleting Multiple Documents

If you need to delete more than one document, such as all users who have been inactive for over a year, you can use the deleteMany method. Here is an example:

$deleteResult = $collection->deleteMany([
    'last_active' => [
        '$lt' => new MongoDB\BSON\UTCDateTime(strtotime('-1 year') * 1000)
    ]
]);

echo "Deleted " . $deleteResult->getDeletedCount() . " document(s).";

Here is the explanation for the above code:

  • The deleteMany method deletes all documents matching the query.
  • The query uses the $lt operator to find documents where last_active is earlier than one year ago.

Deleting documents may not always go smoothly. You need to handle potential errors. For instance, there could be connection issues or invalid queries. Here is how you can handle errors:

try {
    $deleteResult = $collection->deleteOne([
        'email' => '[email protected]'
    ]);

    if ($deleteResult->getDeletedCount() === 0) {
        echo "No documents matched the criteria.";
    } else {
        echo "Deleted " . $deleteResult->getDeletedCount() . " document(s).";
    }
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}

This ensures that your script does not crash and provides feedback when no documents match the deletion criteria.

Let’s summarize it.

Wrapping Up

Here are the main points covered in this article about deleting documents in MongoDB using PHP:

  1. Deleting a Single Document:You can use the deleteOne method to remove the first document that matches a given condition, such as deleting a user with a specific email address.
  2. Deleting Multiple Documents:The deleteMany method allows you to remove all documents that match a query. This is useful for tasks like cleaning up records based on time or other criteria.
  3. Error Handling:Always handle potential errors, such as connection issues or invalid queries, to ensure your application runs smoothly and provides helpful feedback to users.

Similar Reads

PHP Prepared Statements in MySQL: Preventing SQL Injection

MySQL Prepared Statements in PHP are an important tool for ensuring security and optimization. They safeguard against SQL injection attacks,…

PHP is_dir Function: Check if a Directory Exists

Sometimes, when you run a script, you may encounter an error because the directory you're trying to access doesn't exist.…

PHP Spread Operator: Understand How (…) Syntax Works

Before the spread operator, PHP developers had to pass array items to a function using extra steps. They often had…

How to Create Table in MySQL with PHP?

One of the first tasks you will likely encounter is creating a table in databases. Tables are the main part…

Constants in PHP: How They Work & Examples

Constants in PHP store fixed values that don’t change during execution. We will cover the following topics in this article:…

PHP is_file Function: Check if a File Exists

If you are working with PHP and need a way to confirm if something is indeed a file, the is_file function will…

How to Insert Multiple Rows in MySQL with PHP?

Inserting multiple data rows using PHP is a basic task. However when you start working with MySQL databases, So that…

PHP explode Function: How it Works with Examples

When you deal with text in PHP, sometimes you need to break it into parts. This is common when users…

PHP Array Operators: Union, Equality, Identity

PHP arrays serve as powerful tools for storing multiple values in a single variable. To manipulate arrays efficiently, PHP provides…

How to Connect a MySQL Database to PHP?

Connecting PHP to MySQL is not just a technical step—it is the basic part of how data-driven websites work. From…

Previous Article

How to Update Documents in MongoDB Using PHP

Next Article

PHP List MongoDB Collections

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *


Subscribe to Get Updates

Get the latest updates on Coding, Database, and Algorithms straight to your inbox.
No spam. Unsubscribe anytime.