Maison > développement back-end > tutoriel php > Comment ajouter un nouvel élément à un tableau imbriqué dans MongoDB à l'aide de $push ?

Comment ajouter un nouvel élément à un tableau imbriqué dans MongoDB à l'aide de $push ?

Mary-Kate Olsen
Libérer: 2024-12-14 05:14:16
original
328 Les gens l'ont consulté

How to Add a New Item to a Nested Array in MongoDB using $push?

MongoDB : ajout de données à un tableau imbriqué avec $push

Dans MongoDB, vous pouvez stocker des structures de données complexes, telles que des tableaux imbriqués. Lorsque vous devez ajouter de nouveaux éléments à ces tableaux, vous pouvez utiliser l'opérateur $push.

Problème :

Vous souhaitez ajouter un nouvel élément à un sous-tableau spécifique au sein d'un document. Votre document contient un tableau imbriqué de morceaux de musique dans une liste de lecture. Vous souhaitez ajouter une nouvelle piste à une playlist existante.

Exemple de document :

{
  "username": "erkin",
  "email": "example@email.com",
  "password": "b",
  "playlists": [
    {
      "_id": 58,
      "name": "asdsa",
      "date": "09-01-15",
      "musics": [
        {
          "name": "INNA - Cola Song (feat. J Balvin)",
          "duration": "3.00"
        }
      ]
    }
  ]
}
Copier après la connexion

Résultat souhaité :

{
  "username": "erkin",
  "email": "example@email.com",
  "password": "b",
  "playlists": [
    {
      "_id": 58,
      "name": "asdsa",
      "date": "09-01-15",
      "musics": [
        {
          "name": "INNA - Cola Song (feat. J Balvin)",
          "duration": "3.00"
        },
        {
          "name": "new",
          "duration": "3.00"
        }
      ]
    }
  ]
}
Copier après la connexion

Solution :

Pour ajouter un nouvel élément au sous-tableau musics, vous pouvez utiliser la requête de mise à jour suivante :

db.collection.update(
    { "_id": ID, "playlists._id": "58"},
    { "$push": 
        {"playlists.$.musics": 
            {
                "name": "test name",
                "duration": "4.00"
            }
        }
    }
)
Copier après la connexion

Dans cette requête :

  • "_id" : ID identifie le document que vous souhaitez mettre à jour.
  • "playlists._id": "58" spécifie la playlist spécifique dans le document où vous souhaitez ajouter le nouveau item.
  • "$push" effectue l'opération de mise à jour.
  • {"playlists.$.musics": ...} pousse le nouvel élément dans le sous-tableau des musiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal