>백엔드 개발 >PHP 튜토리얼 >$push를 사용하여 MongoDB의 중첩 배열에 새 항목을 추가하는 방법은 무엇입니까?

$push를 사용하여 MongoDB의 중첩 배열에 새 항목을 추가하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 05:14:16256검색

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

MongoDB: $push를 사용하여 중첩 배열에 데이터 추가

MongoDB에서는 중첩 배열과 같은 복잡한 데이터 구조를 저장할 수 있습니다. 이러한 배열에 새 요소를 추가해야 하는 경우 $push 연산자를 사용할 수 있습니다.

문제:

특정 하위 배열에 새 항목을 추가하려고 합니다. 문서 내에서. 문서에는 재생 목록 내에 중첩된 음악 트랙 배열이 포함되어 있습니다. 기존 재생 목록에 새 트랙을 추가하고 싶습니다.

예시 문서:

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

원함 결과:

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

해결책:

음악 하위 배열에 새 항목을 추가하려면 다음 업데이트 쿼리를 사용할 수 있습니다.

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

이에는 쿼리:

  • "_id": ID는 업데이트하려는 문서를 식별합니다.
  • "playlists._id": "58"은 업데이트하려는 문서 내의 특정 재생 목록을 지정합니다. 새 항목을 추가합니다.
  • "$push"가 업데이트를 수행합니다.
  • {"playlists.$.musics": ...}는 새 항목을 musics 하위 배열에 푸시합니다.

위 내용은 $push를 사용하여 MongoDB의 중첩 배열에 새 항목을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.