MongoDB에서 푸시 배열 업데이트

Tahseen Tauseef 2024년2월15일
  1. MongoDB의 연산자
  2. MongoDB의 $push 연산자
  3. MongoDB의 배열에 요소 푸시
  4. MongoDB에서 배열의 시작 부분에 있는 푸시 요소
  5. MongoDB의 배열 끝에 있는 푸시 요소
  6. MongoDB에서 여러 요소 푸시
MongoDB에서 푸시 배열 업데이트

이 지침 게시물은 다양한 기술을 사용하여 MongoDB의 배열에 요소를 추가하는 방법을 보여줍니다. 배열에 요소를 푸시하거나 추가하는 것은 기존 MongoDB 문서에서 개체를 추가하거나 이동하여 목록을 빠르게 추가하는 데 매우 편리합니다.

이 단원에서는 푸시 작업에 음수 및 양수를 모두 사용하는 방법과 데이터를 배열에 넣을 수 있는 추가 푸시 가능성을 제공하는 음수 정수를 사용하는 방법을 배웁니다.

전제 조건:

  1. MongoDB의 배열에 요소를 추가하려면 MongoDB를 적절하게 설치 및 구성해야 합니다.
  2. 배열이 어떻게 작동하는지에 대한 기본적인 이해.

먼저 이 기사의 목차를 살펴보자.

  1. MongoDB의 연산자
  2. MongoDB의 $push 연산자
  3. 요소를 배열로 푸시
  4. 배열 시작 부분에 요소 밀어넣기
  5. 배열의 끝에서 요소 밀어내기

MongoDB의 연산자

연산자는 컴파일러나 인터프리터에게 수학적 또는 논리적 연산을 수행하는 방법을 알려주는 특수 기호 또는 키워드입니다. 쿼리 연산자는 개발자가 응용 프로그램과 관련된 데이터 세트와 상호 작용하는 복잡한 쿼리를 작성할 수 있도록 하여 MongoDB의 기능을 확장합니다.

다음은 MongoDB의 다양한 유형의 연산자입니다.

  1. 쿼리 및 프로젝션 연산자 - 쿼리 연산자는 데이터베이스에서 데이터를 검색하는 데 도움이 되는 반면 프로젝션 연산자는 데이터 표시 방법을 변경합니다.
  2. 업데이트 연산자 - 업데이트 연산자를 사용하면 데이터를 변경하거나 데이터베이스에 추가할 수 있습니다.
  3. 집계 파이프라인 단계 - 집계 파이프라인에 사용 가능한 집계 단계.
  4. 집계 파이프라인 연산자 - 집계 파이프라인 작업에는 파이프라인 단계에서 문서를 정의하고 조작하는 데 사용할 수 있는 연산자 모음이 있습니다.
  5. 쿼리 수정자 - 쿼리 수정자는 쿼리 실행 방법을 결정합니다.

MongoDB의 $push 연산자

MongoDB에서 $push 연산자는 배열에 값을 첨부하는 데 사용됩니다. $push 연산자는 update 연산자입니다.

제공된 필드가 변경 중인 문서에 없는 경우 $push 연산자는 지정된 값을 요소로 사용하여 필드를 새 필드로 만듭니다. 업데이트 필드가 배열 유형이 아닌 경우 작업이 실패했습니다.

업데이트할 때 $push 연산자는 값이 배열인 경우 전체 배열을 단일 요소로 추가합니다. $push 연산자를 $each 한정자와 함께 사용하여 각 값 요소를 개별적으로 추가합니다.

통사론:

db.collection.update( <query>,{ $push: { <field>: <value> } })

MongoDB $push 연산자의 예:

subjects 조건이 maths인 경우 달성된 배열 필드에 95를 추가하려면 아래 MongoDB 명령을 사용할 수 있습니다.

db.student.update( { "subjects" : "maths" },{ $push: { "achieve": 95 } });

앞의 예에서 설명한 기준이 이 작업과 일치하기 때문에 달성된 배열에 95 값이 추가됩니다.

새로 업데이트된 문서를 보려면:

db.student.find().pretty();

위에 주어진 쿼리의 출력은 이 스크린샷에서 볼 수 있습니다.

푸시 연산자 사용

필드가 배열이 아닌 경우 MongoDB $push의 예:

배열 유형 필드가 아닌 sem 열에 2를 추가하려면 아래 MongoDB 명령을 사용할 수 있습니다.

db.student.update( { "subjects" : "maths" },{ $push: { "sem": 2 } });

위의 예에서 sem 필드는 배열 유형이 아니므로 작업이 실패하고 다음 결과가 생성됩니다.

Cannot apply $push/$push All modifier to non-array

MongoDB의 배열에 요소 푸시

이 섹션에서는 update 작업과 같은 $push 연산자를 사용하여 배열에 요소를 추가하는 방법을 보여줍니다.

먼저 다음과 같이 과일로 샘플 데이터셋을 생성합니다.

use fruitdb
switched to db fruitdb
db.fruit.insert({
      "_id": "100",
      "fruitArray": ['mango', 'banana', 'orange']
   });
WriteResult({ "nInserted" : 1 })

이제 다음 명령으로 삽입 프로세스를 확인하십시오.

db.fruit.find({_id: "100"});

결과는 다음과 유사해야 합니다.

MongoDB의 배열에 요소 푸시

이제 fruitArray에 다른 과일을 추가합니다. 이 예에서는 다음 명령을 실행하여 pineapple을 추가합니다.

db.fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: "pineapple"
          }
      }
  );

결과는 다음과 유사해야 합니다.

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

다음 명령을 실행하여 파인애플이 요소로 fruitArray에 성공적으로 추가되었는지 확인합니다.

db.fruit.find({_id: "100"}).pretty();

출력은 다음과 같아야 합니다.

MongoDB 2의 배열에 요소 푸시

결과는 $push 연산자가 fruitArray 끝에 pineapple이라는 단어를 삽입했음을 보여줍니다.

MongoDB에서 배열의 시작 부분에 있는 푸시 요소

이전 섹션에서는 배열의 시작 부분에 새 요소를 첨부하는 방법을 설명했습니다. 이 섹션에서는 배열의 시작 부분에 포도 요소를 삽입하는 방법을 보여줍니다.

이 작업을 수행하는 데 다음 명령이 사용됩니다.

db.fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: {
                  $each: ['grapes'],
                  $position: 0
              }
          }
      }
  );

다음 명령은 업데이트 절차가 성공했는지 확인할 수 있습니다.

db.fruit.find({_id: "100"}).pretty();

출력은 다음과 유사해야 합니다.

MongoDB에서 배열의 시작 부분에 요소 푸시

이전 작업에서 $position 연산자가 사용되었습니다. 이름에서 알 수 있듯이 이 명령은 사용자가 정의한 배열 내에 요소를 배치합니다.

또한 $position 값에 사용되는 양의 정수는 배열의 왼쪽 또는 시작 부분에서 푸시된다는 점에 유의하십시오.

MongoDB의 배열 끝에 있는 푸시 요소

이전 섹션에서는 $position 연산자의 값으로 양의 정수를 사용하여 배열의 시작 부분에 요소를 삽입하는 방법을 보여줍니다. 이 부분에서는 여기에 설명된 대로 음의 정수를 값으로 사용하여 항목을 푸시하는 방법을 알려줍니다.

db. fruit.update(
      { "_id": "100" },
      {
          $push: {
              fruitArray: {
              $each: ['apple'],
              $position: -1
          }
      }
  });

출력은 다음과 유사해야 합니다.

MongoDB의 배열 끝에서 요소 푸시

값에 -1을 사용하면 apple이 요소 목록의 마지막에서 두 번째 위치에 배치되고 마지막 요소는 0 위치에 놓입니다.

MongoDB에서 여러 요소 푸시

이 섹션에서는 배열에 여러 요소를 삽입하거나 푸시하는 방법을 보여줍니다.

먼저 fruit 문서 내부에 다른 배열을 추가합니다.

db. fruit.insert({
      "_id": "101",
      "fruitArray": ["strawberry","guava","lemon"]
  });

다음 정보로 새 문서를 생성해야 합니다.

MongoDB에서 여러 요소 푸시

이제 다음 명령을 사용하여 새 문서에 수많은 요소를 추가합니다.

db.fruit.update(
      { "_id": "101" },
      {
          $push: {
              fruitArray: {
                  $each: ['pear', 'cherry', 'lime'],
                  $position: -2
              }
          }
      }
  );

위의 코드에서 ['pear', 'cherry', and 'lime'] 항목이 푸시되므로 이 배열은 하나의 요소로 볼 수 있습니다. 이것은 pear를 지정된 -2 위치로 밀거나 이동한 다음 cherrylime이 순서대로 옵니다.

요소가 주어진 순서대로 배열에 추가된다는 점에 유의해야 합니다.

이 기사에서는 MongoDB에서 배열에 요소를 추가하는 다양한 방법을 안내했습니다. 먼저, 수업에서는 update 작업과 같은 배열에 요소를 추가하기 위해 $push 연산자를 사용하는 방법을 보여주었습니다.

그런 다음 샘플 데이터 세트를 생성하고, 배열에 요소를 삽입하고, 마지막으로 삽입 프로세스를 테스트하는 방법을 시연했습니다. 이 문서에서는 배열의 시작, 중간 및 끝에서 요소를 푸시하는 방법과 여러 요소를 푸시하는 방법에 대해서도 설명했습니다.

값으로 음의 정수는 요소를 배열의 끝으로 밀어넣는 반면 양의 정수는 배열의 왼쪽 또는 시작 부분에서 요소를 밀어냅니다.