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

MongoDB에서 마지막으로 삽입된 문서를 조회하는 방법

MongoDB에서 마지막으로 삽입된 문서를 가져오려면 sort() 메서드와 limit(1)을 함께 사용하면 됩니다. _id 필드는 ObjectId 기반으로 생성되며 문서가 삽입된 시점의 타임스탬프 정보를 포함하고 있기 때문에, _id를 내림차순으로 정렬하면 가장 최근에 삽입된 문서를 손쉽게 찾을 수 있습니다.

1. 샘플 컬렉션 생성하기

먼저 insertOne() 메서드를 사용하여 문서가 담긴 컬렉션을 생성해 보겠습니다.

> db.getLastInsertedDocument.insertOne({"Name":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefb17eef71edecf6a1f6a8")
}
> db.getLastInsertedDocument.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefb181ef71edecf6a1f6a9")
}
> db.getLastInsertedDocument.insertOne({"Name":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefb185ef71edecf6a1f6aa")
}

2. 저장된 전체 문서 확인하기

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

> db.getLastInsertedDocument.find();

출력 결과

{ "_id" : ObjectId("5cefb17eef71edecf6a1f6a8"), "Name" : "John" }
{ "_id" : ObjectId("5cefb181ef71edecf6a1f6a9"), "Name" : "Chris" }
{ "_id" : ObjectId("5cefb185ef71edecf6a1f6aa"), "Name" : "Robert" }

3. 마지막으로 삽입된 문서 조회 쿼리

다음은 마지막으로 삽입된 문서를 가져오는 핵심 쿼리입니다. sort({_id:-1})로 _id를 내림차순 정렬한 뒤, limit(1)으로 결과를 하나로 제한하는 방식입니다.

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

출력 결과

{ "_id" : ObjectId("5cefb185ef71edecf6a1f6aa"), "Name" : "Robert" }

이처럼 sort()와 limit(1)을 조합하면 별도의 타임스탬프 필드를 추가하지 않고도 가장 최근에 삽입된 문서를 간단하게 조회할 수 있습니다. 이 방법은 로그 데이터나 최신 레코드를 빠르게 확인해야 하는 상황에서 특히 유용합니다.