Freigeben über


Aktualisierung

Der update Befehl wird verwendet, um vorhandene Dokumente in einer Auflistung zu ändern. Der update Befehl kann verwendet werden, um ein oder mehrere Dokumente basierend auf Filterkriterien zu aktualisieren. Werte von Feldern können geändert werden, neue Felder und Werte können hinzugefügt werden, und vorhandene Felder können entfernt werden.

Beispiel(n)

Betrachten Sie dieses Beispieldokument aus der Speichersammlung in der StoreData-Datenbank.

{
    "_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
                }
            ]
        }
    ]
}

Beispiel 1: Aktualisieren eines einzelnen Dokuments mithilfe des $inc-Operators

Erhöhen Sie die Gesamtverkaufszahlen um 10, und erhöhen Sie die Anzahl der Vollzeitmitarbeiter für ein Dokument mit dem angegebenen _id.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$inc": {"sales.salesByCategory.0.totalSales": 10, "staff.totalStaff.fullTime": -6}})

Beispiel 2 : Aktualisieren eines einzelnen Dokuments mithilfe des $min operators

Aktualisieren Sie die Gesamtanzahl für das Dokument mit dem angegebenen _id auf 10, wenn der aktuelle Wert des Felds größer als 10 ist.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$min": {"staff.totalStaff.fullTime": 10}})

Beispiel 3 : Aktualisieren eines einzelnen Dokuments mithilfe des $max-Operators

Aktualisieren Sie die Gesamtanzahl für das Dokument mit dem angegebenen _id auf 14, wenn der aktuelle Wert des Felds kleiner als 14 ist.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$max": {"staff.totalStaff.fullTime": 14}})

Beispiel 4 : Aktualisieren eines einzelnen Dokuments mithilfe des $mul-Operators

Mehrere Anzahl der Teilzeitmitarbeiter um 2 für das Dokument mit dem angegebenen _id Wert.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$mul": {"staff.totalStaff.partTime": 2}})

Beispiel 5: Aktualisieren eines einzelnen Dokuments mithilfe des $rename-Operators

Benennen Sie die Felder "totalSales" und "totalStaff" in "fullSales" bzw. "staffCounts" um.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$rename": {"sales.totalSales": "sales.fullSales", "staff.totalStaff": "staff.staffCounts"}})

Beispiel 6 : Aktualisieren eines einzelnen Dokuments mithilfe des $set-Operators

Legen Sie das FullSales-Feld für das Dokument mit dem angegebenen _id Wert auf 3700 fest.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$set": {"sales.fullSales": 3700}})

Beispiel 7 : Aktualisieren eines einzelnen Dokuments mithilfe des $unset operators

Entfernen Sie das lon-Feld aus dem Positionsobjekt im Dokument mit dem angegebenen _id Wert.

db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$unset": {"location.lon": ""}})

Beispiel 8 – Aktualisieren mehrerer Dokumente

Aktualisieren Sie alle Dokumente, in denen das erste Werbeereignis im Februar beginnt, um im März zu beginnen.

db.stores.updateMany({"promotionEvents.0.promotionalDates.startDate.Month": 2}, {"$inc": {"promotionEvents.0.promotionalDates.startDate.Month": 1}})

Beispiel 9 – Upsert eines einzelnen Dokuments

Legen Sie das Upsert-Flag auf "true" fest, um ein neues Dokument zu erstellen, wenn das im Abfragefilter angegebene Dokument in der Auflistung nicht vorhanden ist.

db.stores.updateOne({"_id": "NonExistentDocId"}, {"$set": {"name": "Lakeshore Retail", "sales.totalSales": 0}}, {"upsert": true})