Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’opérateur $pull est utilisé pour supprimer toutes les instances d’une valeur ou des valeurs spécifiées qui correspondent à une condition d’un tableau. Cela est utile lorsque vous devez nettoyer ou modifier des données de tableau dans vos documents.
Syntaxe
{
$pull: { <field>: <value|condition> }
}
Paramètres
| Paramètre | Descriptif |
|---|---|
<field> |
Champ à partir duquel supprimer une ou plusieurs valeurs. |
<value|condition> |
Valeur ou condition à supprimer du tableau. |
Examples
Considérez cet exemple de document de la collection des magasins.
{
"_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 : Supprimer une balise spécifique du tag tableau
Pour supprimer la valeur « #SeasonalSale » du champ du tableau d’étiquettes, exécutez une requête à l’aide de l’opérateur $pull sur le champ de balise.
db.stores.update({
_id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"
}, {
$pull: {
tag: "#SeasonalSale"
}
})
Cette requête retourne le résultat suivant.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": "1",
"modifiedCount": "1",
"upsertedCount": 0
}
]
Exemple 2 : Supprimer tous les événements du promotionEvents tableau qui se terminent avant une certaine date
Pour supprimer tous les éléments du tableau promotionEvents où la date de fin de l’année est 2024 et que le mois endDate est antérieur à mars, exécutez une requête à l’aide de l’opérateur $pull sur le champ promotionEvents avec les valeurs de date spécifiées.
db.stores.update({
_id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"
}, {
$pull: {
promotionEvents: {
"promotionalDates.endDate.Year": 2024,
"promotionalDates.endDate.Month": {
$lt: 3
}
}
}
}
)
Cette requête retourne le résultat suivant.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": "1",
"modifiedCount": "1",
"upsertedCount": 0
}
]