HOWTO · MongoDB
MongoDB의 자동 증가
이 튜토리얼에서는 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 콘솔에서 실행해야 합니다.