Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
La update commande est utilisée pour modifier des documents existants dans une collection. La update commande peut être utilisée pour mettre à jour un ou plusieurs documents en fonction des critères de filtrage. Les valeurs des champs peuvent être modifiées, les nouveaux champs et les valeurs peuvent être ajoutés et les champs existants peuvent être supprimés.
Exemple(s)
Considérez cet exemple de document à partir de la collection de magasins dans la base de données 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
}
]
}
]
}
Exemple 1 : mettre à jour un document unique à l’aide de l’opérateur $inc
Incrémentez le totalSales de 10 et décrémentez le nombre d’employés à temps plein pour un document avec le _id spécifié.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$inc": {"sales.salesByCategory.0.totalSales": 10, "staff.totalStaff.fullTime": -6}})
Exemple 2 : Mettre à jour un document unique à l’aide de l’opérateur $min
Mettez à jour le nombre totalStaff pour le document avec le _id spécifié à 10 si la valeur actuelle du champ est supérieure à 10.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$min": {"staff.totalStaff.fullTime": 10}})
Exemple 3 : Mettre à jour un document unique à l’aide de l’opérateur $max
Mettez à jour le nombre totalStaff pour le document avec le _id spécifié à 14 si la valeur actuelle du champ est inférieure à 14.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$max": {"staff.totalStaff.fullTime": 14}})
Exemple 4 : Mettre à jour un document unique à l’aide de l’opérateur $mul
Plusieurs nombres d’employés à temps partiel de 2 pour le document avec la valeur _id spécifiée.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$mul": {"staff.totalStaff.partTime": 2}})
Exemple 5 : Mettre à jour un document unique à l’aide de l’opérateur $rename
Renommez les champs totalSales et totalStaff en fullSales et staffCounts respectivement.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$rename": {"sales.totalSales": "sales.fullSales", "staff.totalStaff": "staff.staffCounts"}})
Exemple 6 : Mettre à jour un document unique à l’aide de l’opérateur $set
Définissez le champ fullSales sur 3700 pour le document avec la valeur _id spécifiée.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$set": {"sales.fullSales": 3700}})
Exemple 7 : Mettre à jour un document unique à l’aide de l’opérateur $unset
Supprimez le champ lon de l’objet d’emplacement du document avec la valeur _id spécifiée.
db.stores.updateOne({"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4"}, {"$unset": {"location.lon": ""}})
Exemple 8 - Mettre à jour plusieurs documents
Mettez à jour tous les documents où commence le premier événement promotionnel en février pour commencer en mars.
db.stores.updateMany({"promotionEvents.0.promotionalDates.startDate.Month": 2}, {"$inc": {"promotionEvents.0.promotionalDates.startDate.Month": 1}})
Exemple 9 - Upsert un seul document
Définissez l’indicateur upsert sur true pour créer un document si le document spécifié dans le filtre de requête n’existe pas dans la collection.
db.stores.updateOne({"_id": "NonExistentDocId"}, {"$set": {"name": "Lakeshore Retail", "sales.totalSales": 0}}, {"upsert": true})