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

MongoDB 컬렉션의 배열에 단일 값 추가하기 – $push 연산자 활용법

MongoDB 배열에 단일 값 추가하기

MongoDB에서 배열 필드에 단일 값만 추가하고 싶다면 $push 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 중첩된 문서 구조 안의 배열에 새로운 값을 추가하는 과정을 단계별로 살펴보겠습니다.

1단계: 샘플 컬렉션 생성

먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.

> db.demo3.insertOne(
...    {
...       "Information" : {
...          "Of" : {
...             "StudentCode" : "STUDENT101",
...             "StudentFavouriteSubject" : [
...                "MySQL",
...                "Java"
...             ]
...          }
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e08b7ef25ddae1f53b6221b")
}

위 문서는 학생 코드와 함께 좋아하는 과목 목록을 배열 형태로 저장하고 있습니다. 여기에 새로운 과목 하나를 추가해 보겠습니다.

2단계: find()로 기존 문서 확인

컬렉션에 저장된 모든 문서를 조회하려면 find() 메서드를 사용합니다.

> db.demo3.find();

실행 결과는 다음과 같습니다.

{ "_id" : ObjectId("5e08b7ef25ddae1f53b6221b"), "Information" : { "Of" : { "StudentCode" : "STUDENT101", "StudentFavouriteSubject" : [ "MySQL", "Java" ] } } }

3단계: $push로 배열에 값 추가

이제 update() 메서드와 $push 연산자를 조합하여 배열에 단일 값을 추가합니다. 점 표기법(dot notation)을 사용하면 중첩된 문서 내부의 배열 필드에도 접근할 수 있습니다.

> db.demo3.update({},{$push:{"Information.Of.StudentFavouriteSubject":"Spring and Hibernate"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

결과 메시지에서 nModified : 1은 하나의 문서가 성공적으로 수정되었음을 의미합니다.

4단계: 업데이트 결과 확인

변경된 내용을 눈으로 확인하기 위해 pretty() 메서드를 사용해 문서를 다시 조회해 보겠습니다.

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

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

{
   "_id" : ObjectId("5e08b7ef25ddae1f53b6221b"),
   "Information" : {
      "Of" : {
         "StudentCode" : "STUDENT101",
         "StudentFavouriteSubject" : [
            "MySQL",
            "Java",
            "Spring and Hibernate"
         ]
      }
   }
}

정리

이처럼 MongoDB에서는 $push 연산자 하나만으로 배열 끝에 새로운 값을 간단히 추가할 수 있습니다. 참고로 중복 값을 허용하지 않고 싶다면 $addToSet 연산자를 대신 사용하는 것도 좋은 방법입니다. 상황에 맞는 연산자를 선택하여 배열 데이터를 효율적으로 관리해 보세요.