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
Mary-Kate OlsenOriginal
2024-12-14 05:14:16256Durchsuche

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

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

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

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!

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