Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kommandot update används för att ändra befintliga dokument i en samling. Kommandot update kan användas för att uppdatera ett eller flera dokument baserat på filtreringsvillkor. Värden för fält kan ändras, nya fält och värden kan läggas till och befintliga fält kan tas bort.
Exempel
Överväg det här exempeldokumentet från lagringssamlingen i StoreData-databasen.
{
"_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
}
]
}
]
}
Exempel 1 – Uppdatera ett enskilt dokument med operatorn $inc
Öka totalförsäljningarna med 10 och minska antalet heltidsanställda för ett dokument med den angivna _id.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$inc": {"sales.salesByCategory.0.totalSales": 10, "staff.totalStaff.fullTime": -6}})
Exempel 2 – Uppdatera ett enskilt dokument med operatorn $min
Uppdatera totalStaff-antalet för dokumentet med den angivna _id till 10 om fältets aktuella värde är större än 10.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$min": {"staff.totalStaff.fullTime": 10}})
Exempel 3 – Uppdatera ett enskilt dokument med operatorn $max
Uppdatera totalStaff-antalet för dokumentet med den angivna _id till 14 om fältets aktuella värde är mindre än 14.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$max": {"staff.totalStaff.fullTime": 14}})
Exempel 4 – Uppdatera ett enskilt dokument med operatorn $mul
Flera antal deltidsanställda med 2 för dokumentet med det angivna _id värdet.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$mul": {"staff.totalStaff.partTime": 2}})
Exempel 5 – Uppdatera ett enskilt dokument med operatorn $rename
Byt namn på fälten totalSales och totalStaff till fullSales respektive staffCounts.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$rename": {"sales.totalSales": "sales.fullSales", "staff.totalStaff": "staff.staffCounts"}})
Exempel 6 – Uppdatera ett enskilt dokument med operatorn $set
Ange fältet fullSales till 3700 för dokumentet med det angivna värdet _id.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$set": {"sales.fullSales": 3700}})
Exempel 7 – Uppdatera ett enskilt dokument med operatorn $unset
Ta bort fältet lon från platsobjektet i dokumentet med angivet _id värde.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$unset": {"location.lon": ""}})
Exempel 8 – Uppdatera flera dokument
Uppdatera alla dokument där det första kampanjevenemanget startar i februari och börjar i mars.
db.stores.updateMany({"promotionEvents.0.promotionalDates.startDate.Month": 2}, {"$inc": {"promotionEvents.0.promotionalDates.startDate.Month": 1}})
Exempel 9 – Upsert ett enda dokument
Ställ in upsert-flaggan på true för att skapa ett nytt dokument om dokumentet som anges i frågefiltret inte finns i samlingen.
db.stores.updateOne({"_id": "NonExistentDocId"}, {"$set": {"name": "Lakeshore Retail", "sales.totalSales": 0}}, {"upsert": true})