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' => 'user@example.com'
]);

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 => 'user@example.com').
  • 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' => 'nonexistent@example.com'
    ]);

    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

OOP Interface PHP: How to Set Rules for Classes

PHP developers relied on class inheritance to share functionality before the OOP interface, but this approach had limits. It solves…

PHP array_merge: Combine Multiple Arrays into One

You have two or more arrays. You want one. That is the problem array_merge solves in PHP. This function lets…

PHP Float: Understanding Float Precision in PHP

A PHP float is a kind of number that has a decimal point, like 2.45 or 0.11. It’s also called…

PHP mb_strtolower: How to Handle Multibyte Strings Properly

The mb_strtolower() function in PHP turns every letter in a string into lowercase. It works with multibyte encodings like UTF-8.…

PHP array_combine: How to Merge Arrays as Key and Value

The array_combine function in PHP creates a new array with one array for keys and another for values. It needs…

PHP Comparison Operators Guide with Examples

PHP comparison operators allow you to compare values in many ways, and this simplifies the process of checking whether values…

PHP array_fill_keys: Create Arrays with Specific Keys

The PHP array_fill_keys function helps you to build an array where each key has the same value. What is the…

PHP Global Variables & Superglobals: A Complete Guide

Variables in PHP are general elements used for data storage and other manipulations. Global variables belong to a particular category…

Get Last Insert ID in PHP with MySQL PDO and MySQLi

Keeping track of the last record inserted is often important. Whether you are managing user registrations, processing orders, or handling…

PHP Filters: How to Validate and Sanitize User Inputs

User input can be unpredictable and dangerous. A simple form submission might carry malicious code or invalid data and lead…

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.