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
Mary-Kate Olsenoriginal
2024-12-14 05:14:16259parcourir

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"
        }
      ]
    }
  ]
}

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"
        }
      ]
    }
  ]
}

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"
            }
        }
    }
)

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:
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