Поделиться через


удалить

Команда delete используется для удаления документов из коллекции. Один документ или несколько документов можно удалить на основе указанного фильтра запросов.

Синтаксис

Базовый синтаксис для delete команды выглядит следующим образом:

db.collection.deleteOne(
   <filter>,
   <options>
)

db.collection.deleteMany(
   <filter>,
   <options>
)

Параметры

Параметр Описание
<filter> Документ, указывающий критерии удаления. Удаляются только документы, соответствующие фильтру
options Необязательно. Документ, указывающий параметры операции удаления. Распространенные варианты включают writeConcern и упорядочение

Примеры

Рассмотрим этот пример документа из коллекции хранилищ в базе данных StoreData.

{
    "_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
    "name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
    "location": {
        "lat": -89.2384,
        "lon": -46.4012
    },
    "staff": {
        "totalStaff": {
            "fullTime": 8,
            "partTime": 20
        }
    },
    "sales": {
        "totalSales": 75670,
        "salesByCategory": [
            {
                "categoryName": "Wine Accessories",
                "totalSales": 34440
            },
            {
                "categoryName": "Bitters",
                "totalSales": 39496
            },
            {
                "categoryName": "Rum",
                "totalSales": 1734
            }
        ]
    },
    "promotionEvents": [
        {
            "eventName": "Unbeatable Bargain Bash",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 6,
                    "Day": 23
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 7,
                    "Day": 2
                }
            },
            "discounts": [
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 7
                },
                {
                    "categoryName": "Bitters",
                    "discountPercentage": 15
                },
                {
                    "categoryName": "Brandy",
                    "discountPercentage": 8
                },
                {
                    "categoryName": "Sports Drinks",
                    "discountPercentage": 22
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 19
                }
            ]
        },
        {
            "eventName": "Steal of a Deal Days",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 21
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 29
                }
            },
            "discounts": [
                {
                    "categoryName": "Organic Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "White Wine",
                    "discountPercentage": 20
                },
                {
                    "categoryName": "Sparkling Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 17
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 23
                }
            ]
        }
    ]
}

Пример 1. Удаление всех документов в коллекции

db.stores.deleteMany({})

Пример 2. Удаление документа, соответствующего указанному фильтру запросов

db.stores.deleteOne({"_id": "68471088-4d45-4164-ae58-a9428d12f310"})

Пример 3. Удаление всех документов, соответствующих указанному фильтру запросов

db.stores.deleteMany({"promotionEvents.discounts.discountPercentage": 21}, {"limit": 0})

Пример 3. Удаление только одного из нескольких документов, соответствующих указанному фильтру запросов

db.stores.deleteMany({"promotionEvents.discounts.discountPercentage": 21}, {"limit": 1})