Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 배열에 요소를 추가하는 방법 – $push 연산자 완벽 가이드

MongoDB에서 배열에 데이터를 추가하려면 어떻게 해야 할까요?

MongoDB에서 기존 배열 필드에 새로운 요소를 추가하고 싶다면 $push 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 $push 연산자의 사용 방법을 단계별로 살펴보겠습니다.

1. 테스트용 컬렉션 생성 및 문서 삽입

먼저 insertOne() 메서드를 사용하여 친구 목록을 담은 문서를 컬렉션에 삽입해 보겠습니다.

> db.demo445.insertOne({"ListOfFriends":["Robert","Mike","Sam","Carol","David","Mike"]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e78f099bbc41e36cc3caec2")
}

2. 삽입된 문서 확인하기

find() 메서드를 사용하여 컬렉션의 모든 문서를 조회합니다.

> db.demo445.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
    "_id" : ObjectId("5e78f099bbc41e36cc3caec2"),
    "ListOfFriends" : [
        "Robert",
        "Mike",
        "Sam",
        "Carol",
        "David",
        "Mike"
    ]
}

3. $push 연산자로 배열에 새 요소 추가하기

이제 $push 연산자를 사용하여 ListOfFriends 배열에 새로운 이름인 "Chris Brown"을 추가해 보겠습니다.

> db.demo445.update(
...     { _id: ObjectId("5e78f099bbc41e36cc3caec2") },
...     { $push: { ListOfFriends: "Chris Brown" } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

실행 결과를 보면 nMatched: 1, nModified: 1이 반환되었으므로, 조건에 일치하는 문서 하나가 성공적으로 수정되었다는 의미입니다.

4. 업데이트 결과 확인하기

다시 한번 find() 메서드로 문서를 조회하여 변경 사항을 확인해 보겠습니다.

> db.demo445.find().pretty();

출력 결과는 다음과 같습니다.

{
    "_id" : ObjectId("5e78f099bbc41e36cc3caec2"),
    "ListOfFriends" : [
        "Robert",
        "Mike",
        "Sam",
        "Carol",
        "David",
        "Mike",
        "Chris Brown"
    ]
}

정리 및 추가 팁

위 예제에서 확인했듯이, MongoDB에서 배열에 요소를 추가하는 것은 전혀 어렵지 않습니다. 핵심은 $push 연산자를 update() 또는 updateOne() 메서드와 함께 사용하는 것입니다.

참고로 몇 가지 유용한 팁을 덧붙이자면:

중복 방지: 배열에 이미 존재하는 값의 중복 추가를 막고 싶다면 $addToSet 연산자를 사용하세요. 위 예제의 "Mike"처럼 동일한 값이 여러 번 들어갈 수 있는데, $addToSet을 사용하면 이런 중복을 자동으로 방지할 수 있습니다.

여러 요소 한 번에 추가: $each 수정자와 함께 사용하면 여러 값을 한 번의 작업으로 배열에 추가할 수 있습니다. 예를 들어 { $push: { ListOfFriends: { $each: ["John", "Jane"] } } } 형태로 작성하면 됩니다.

최신 문법 권장: 예제에서 사용된 update()는 구버전 메서드이므로, 실제 프로젝트에서는 updateOne() 또는 updateMany()를 사용하는 것이 좋습니다.