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

MongoDB에서 ObjectId 필드를 기준으로 정렬하는 방법

MongoDB에서 ObjectId 정렬하기

MongoDB에서 ObjectId(_id) 필드를 기준으로 정렬하려면 sort() 메서드를 사용하면 됩니다. ObjectId는 문서가 생성된 시점의 타임스탬프 정보를 내부적으로 포함하고 있기 때문에, 이 값을 기준으로 정렬하면 사실상 문서가 삽입된 시간 순서대로 데이터를 정렬하는 것과 같은 효과를 얻을 수 있습니다.

이번 글에서는 실제 예제를 통해 ObjectId 기준 정렬 방법을 단계별로 살펴보겠습니다.

1. 컬렉션 생성 및 문서 삽입

먼저 예제로 사용할 컬렉션을 만들고 문서를 하나씩 삽입해 보겠습니다.

> db.demo403.insertOne({"Name":"Chris"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e6f89b0fac4d418a017858e")
}
> db.demo403.insertOne({"Name":"David"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e6f89b2fac4d418a017858f")
}
> db.demo403.insertOne({"Name":"Bob"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e6f89b5fac4d418a0178590")
}
> db.demo403.insertOne({"Name":"Adam"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e6f89b8fac4d418a0178591")
}

2. find()로 전체 문서 조회하기

find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.

> db.demo403.find();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e6f89b0fac4d418a017858e"), "Name" : "Chris" }
{ "_id" : ObjectId("5e6f89b2fac4d418a017858f"), "Name" : "David" }
{ "_id" : ObjectId("5e6f89b5fac4d418a0178590"), "Name" : "Bob" }
{ "_id" : ObjectId("5e6f89b8fac4d418a0178591"), "Name" : "Adam" }

3. ObjectId 기준 내림차순 정렬 쿼리

다음은 _id(ObjectId) 필드를 기준으로 내림차순(-1) 정렬을 수행하는 쿼리입니다.

> db.demo403.find().sort({_id:-1});

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

{ "_id" : ObjectId("5e6f89b8fac4d418a0178591"), "Name" : "Adam" }
{ "_id" : ObjectId("5e6f89b5fac4d418a0178590"), "Name" : "Bob" }
{ "_id" : ObjectId("5e6f89b2fac4d418a017858f"), "Name" : "David" }
{ "_id" : ObjectId("5e6f89b0fac4d418a017858e"), "Name" : "Chris" }

정리

sort() 메서드에서 1은 오름차순, -1은 내림차순을 의미합니다. 위 예제에서처럼 {_id:-1}을 지정하면 가장 최근에 삽입된 문서부터 출력됩니다. ObjectId에는 타임스탬프가 포함되어 있으므로, 별도의 생성일 필드 없이도 최신 데이터 우선 조회와 같은 페이징 처리에 유용하게 활용할 수 있습니다.