MongoDB에서 처음 n개 문서 건너뛰기
MongoDB에서 특정 개수의 문서를 건너뛰고 그 다음 문서부터 조회하려면 skip() 메서드와 limit() 메서드를 함께 사용하면 됩니다. skip(n)은 앞에서부터 n개의 문서를 무시하고, limit(m)은 이후 m개의 문서만 반환합니다.
먼저 실습에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.
> db.demo246.insertOne({"StudentFirstName":"Chris","StudentLastName":"Brown"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e46b0d71627c0c63e7dba65")
}
> db.demo246.insertOne({"StudentFirstName":"John","StudentLastName":"Doe"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e46b0e21627c0c63e7dba66")
}
> db.demo246.insertOne({"StudentFirstName":"John","StudentLastName":"Smith"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e46b0ea1627c0c63e7dba67")
}
> db.demo246.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e46b0f91627c0c63e7dba68")
}find()로 전체 문서 확인하기
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.
> db.demo246.find();
위 명령은 다음과 같은 결과를 출력합니다.
{ "_id" : ObjectId("5e46b0d71627c0c63e7dba65"), "StudentFirstName" : "Chris", "StudentLastName" : "Brown" }
{ "_id" : ObjectId("5e46b0e21627c0c63e7dba66"), "StudentFirstName" : "John", "StudentLastName" : "Doe" }
{ "_id" : ObjectId("5e46b0ea1627c0c63e7dba67"), "StudentFirstName" : "John", "StudentLastName" : "Smith" }
{ "_id" : ObjectId("5e46b0f91627c0c63e7dba68"), "StudentFirstName" : "Carol", "StudentLastName" : "Taylor" }skip()과 limit()으로 문서 건너뛰기
이제 MongoDB에서 처음 n개의 문서를 건너뛰는 쿼리를 살펴보겠습니다. 아래 예제는 앞의 2개 문서를 건너뛴 후 1개의 문서만 반환합니다.
> db.demo246.find().skip(2).limit(1);
실행 결과는 다음과 같습니다.
{ "_id" : ObjectId("5e46b0ea1627c0c63e7dba67"), "StudentFirstName" : "John", "StudentLastName" : "Smith" }결과를 보면 첫 번째(Chris Brown)와 두 번째(John Doe) 문서가 건너뛰어지고, 세 번째 문서인 John Smith만 반환된 것을 확인할 수 있습니다. 이처럼 skip()과 limit()을 조합하면 페이지네이션 구현 등 다양한 상황에서 원하는 범위의 데이터를 손쉽게 조회할 수 있습니다.