Le mot-clé $push dans MongoDB fait référence à une opération utilisée pour ajouter des éléments à un tableau d’un document. En 2026, avec l’augmentation des données et la nécessité de gérer efficacement les collections, comprendre cette commande est essentiel pour les développeurs et les administrateurs de bases de données. Cet article fournit une vue d’ensemble détaillée de la commande $push, ses spécificités, ses applications pratiques ainsi que des exemples chiffrés.
Qu’est-ce que la commande $push ? #
La commande $push est une opération d’update dans MongoDB qui permet d’ajouter un nouvel élément à un tableau existant dans un document. Cette commande ne crée pas le tableau si celui-ci n’existe pas ; il faut s’assurer que le champ ciblé est bien un tableau.
Syntaxe de base
db.collection.update(
{ <condition> },
{ $push: { <field>: <value> } }
)
<condition>: critère pour sélectionner le document.<field>: le nom du champ contenant le tableau.<value>: l’élément à ajouter au tableau.
Exemples concrets d’utilisation #
Exemple 1 : Ajout d’un élément simple
Imaginons une collection utilisateurs où chaque utilisateur a un tableau de hobbies. Pour ajouter “photographie” à l’utilisateur dont l’identifiant est 123, on utilise :
À lire Requête SQL : Guide Complet Bases de Données
db.utilisateurs.update(
{ _id: 123 },
{ $push: { hobbies: "photographie" } }
)
Si l’utilisateur avait déjà les hobbies “sport” et “musique”, après cette opération, son tableau ressemblera à :
{
"_id": 123,
"hobbies": ["sport", "musique", "photographie"]
}
Exemple 2 : Ajout d’un élément avec conditions
Vous pouvez également utiliser $push avec des conditions supplémentaires. Par exemple, pour ajouter “lecture” uniquement si cela n’est pas déjà dans le tableau :
db.utilisateurs.update(
{ _id: 123 },
{ $addToSet: { hobbies: "lecture" } }
)
Cette commande garantit que “lecture” ne sera ajouté que si elle n’est pas déjà présente.
Options avancées de $push #
MongoDB offre également la possibilité d’utiliser des opérateurs supplémentaires avec $push.
À lire SQL LIKE : Guide Complet & Exemples Pratiques 2026
Limiter la taille du tableau
Avec l’option $slice, vous pouvez limiter la taille du tableau après ajout :
db.utilisateurs.update(
{ _id: 123 },
{ $push: { hobbies: { $each: ["danse"], $slice: -5 } } }
)
Cela va garder uniquement les cinq derniers hobbies après ajout de “danse”.
Utilisation de $each pour plusieurs ajouts
Si vous souhaitez ajouter plusieurs éléments en une seule opération, utilisez $each :
db.utilisateurs.update(
{ _id: 123 },
{ $push: { hobbies: { $each: ["cuisine", "voyage"] } } }
)
Après cette commande, le tableau contiendra les nouveaux hobbies en plus des anciens.
À lire SQL requête : Guide bases données
Piège à éviter #
Un piège courant consiste à tenter d’utiliser $push sur un champ qui n’est pas un tableau ou qui n’existe pas. Dans ce cas, MongoDB renverra une erreur. Avant d’utiliser cette commande, vérifiez toujours que le champ est bien défini comme un tableau.
Tableau récapitulatif des commandes associées #
| Commande | Description |
|---|---|
$push |
Ajoute un élément au tableau |
$addToSet |
Ajoute un élément uniquement s’il n’existe pas |
$pull |
Supprime un élément du tableau |
$pop |
Supprime le premier ou dernier élément |
Bonnes pratiques pour l’utilisation de $push #
- Vérifiez la structure : Assurez-vous que votre champ est bien un tableau avant de faire une mise à jour.
- Utilisez des validations : Implémentez des validations côté application pour éviter les erreurs lors des mises à jour.
- Surveillez la taille : Si vous attendez beaucoup d’ajouts, envisagez d’utiliser des options comme
$slice.
FAQ #
Qu’est-ce que la commande $push dans MongoDB ?
La commande $push permet d’ajouter un élément à un tableau dans un document existant.
Peut-on ajouter plusieurs éléments avec $push ?
Oui, en utilisant l’opérateur $each, vous pouvez ajouter plusieurs éléments simultanément.
Que se passe-t-il si le champ n’existe pas ?
La commande échouera si vous essayez d’utiliser $push sur un champ qui n’existe pas et qui n’est pas initialisé comme un tableau.
À lire Global catalog : Définition et utilisation
Comment empêcher les doublons lors de l’ajout ?
Utilisez la commande $addToSet, qui ajoute uniquement si l’élément n’est pas déjà présent dans le tableau.
Quels sont les avantages de MongoDB par rapport aux bases de données relationnelles ?
MongoDB offre une flexibilité avec sa structure non-relationnelle et permet une scalabilité horizontale.
En appliquant ces conseils et exemples sur la commande $push, vous pourrez enrichir vos documents MongoDB efficacement tout en respectant les meilleures pratiques. Commencez dès maintenant à expérimenter avec vos propres collections !