Heim > Backend-Entwicklung > PHP-Tutorial > Wie füge ich mit $push ein neues Element zu einem verschachtelten Array in MongoDB hinzu?

Wie füge ich mit $push ein neues Element zu einem verschachtelten Array in MongoDB hinzu?

Mary-Kate Olsen
Freigeben: 2024-12-14 05:14:16
Original
256 Leute haben es durchsucht

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

MongoDB: Daten zu einem verschachtelten Array mit $push hinzufügen

In MongoDB können Sie komplexe Datenstrukturen, wie zum Beispiel verschachtelte Arrays, speichern. Wenn Sie diesen Arrays neue Elemente hinzufügen müssen, können Sie den $push-Operator verwenden.

Problem:

Sie möchten einem bestimmten Unterarray ein neues Element hinzufügen innerhalb eines Dokuments. Ihr Dokument enthält eine verschachtelte Reihe von Musiktiteln in einer Wiedergabeliste. Sie möchten einer bestehenden Playlist einen neuen Titel hinzufügen.

Beispieldokument:

{
  "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"
        }
      ]
    }
  ]
}
Nach dem Login kopieren

Gewünschtes Ergebnis:

{
  "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"
        }
      ]
    }
  ]
}
Nach dem Login kopieren

Lösung:

So fügen Sie ein neues Element hinzu Für das Musik-Subarray können Sie die folgende Aktualisierungsabfrage verwenden:

db.collection.update(
    { "_id": ID, "playlists._id": "58"},
    { "$push": 
        {"playlists.$.musics": 
            {
                "name": "test name",
                "duration": "4.00"
            }
        }
    }
)
Nach dem Login kopieren

In dieser Abfrage:

  • "_id": ID identifiziert das Dokument, das Sie aktualisieren möchten.
  • "playlists._id": "58" gibt die spezifische Wiedergabeliste innerhalb des Dokuments an, der Sie die neue hinzufügen möchten item.
  • "$push" führt den Aktualisierungsvorgang aus.
  • {"playlists.$.musics": ...} schiebt das neue Element in das Musik-Subarray.

Das obige ist der detaillierte Inhalt vonWie füge ich mit $push ein neues Element zu einem verschachtelten Array in MongoDB hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage