MongoDB의 자동 증가

MD Aminul Islam 2023년6월20일
MongoDB의 자동 증가

대부분의 SQL 쿼리 언어에는 필드 자동 증가를 위한 단일 키워드가 포함되어 있지만 MongoDB에서는 약간 복잡합니다. MongoDB에는 자동 증가에 사용할 수 있는 키워드가 없습니다.

이 기사에서는 자동 증가 기능을 사용하여 MongoDB 컬렉션에 데이터를 삽입하는 방법을 보여주고 이를 쉽게 하기 위해 주제와 관련된 예제를 볼 것입니다.

MongoDB에서 자동 증분 기능 적용

새 문서가 컬렉션에 삽입된 후 증가해야 하는 일부 필드에는 일련 번호, ID 등이 포함됩니다. 그러나 쿼리에 간단한 문자를 추가하면 이 작업을 자동으로 수행할 수 있습니다.

이 목적으로 사용할 키워드는 $inc이며 특정 데이터 값을 증가시킵니다. 이를 쿼리에 통합하는 방법을 살펴보겠습니다.

아래 예제에서는 MongoDB에서 자동 증분을 사용하는 방법을 보여줍니다. 이를 위해 먼저 시퀀스 번호를 추적할 count라는 새 컬렉션을 만들어야 합니다.

아래와 같은 문서를 삽입하여 컬렉션을 초기화해 봅시다.

db.count.insert(
   {
      _id: "incId",
      seq: 0
   }
)

이렇게 하면 증분 시퀀스가 0으로 초기화됩니다. 이제 count 컬렉션과 지정된 컬렉션 모두에서 값을 증가시키는 autoIncrement()라는 함수를 생성합니다.

function autoIncrement(name) {
   var ret = db.count.findAndModify(
          {
            query: { _id: name },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}

이 함수는 증분된 시퀀스 값을 반환하며, 아래와 같이 함수를 호출하여 삽입 함수에서 사용할 수 있습니다.

db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Retro"});
db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Max"});

위의 명령을 실행한 후 필드 값을 수동으로 증분할 필요가 없습니다. 문서를 삽입하면 콘솔에 아래와 같은 출력이 표시됩니다.

{ _id: ObjectId("6388f500054350812fa6b073"),
  sl: 1,
  Name: 'Retro' }
{ _id: ObjectId("6388f94e054350812fa6b075"),
  sl: 2,
  Name: 'Max'
}

여러 컬렉션의 값을 증가시키기 위해 하나의 계산 컬렉션을 사용할 수 없음을 기억하십시오. 컬렉션 count는 증분 값을 보유하고 업데이트하는 변수와 같으므로 여러 컬렉션에서 값을 증분하려면 카운팅 컬렉션을 만들어야 합니다.

이 문서에 표시된 명령은 MongoDB 데이터베이스용이며 명령은 MongoDB 콘솔에서 실행해야 합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - MongoDB Document