Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 마지막 N개의 레코드를 얻는 방법은 무엇입니까?

<시간/>

MongoDB에서 마지막 N개의 레코드를 얻으려면 limit()를 사용해야 합니다. 구문은 다음과 같습니다.

db.yourCollectionName.find().sort({$natural:-1}).limit(yourValue);

위의 구문을 이해하기 위해 document를 사용하여 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다.

> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Maxwell"});{ "승인된":true, "insertedId":ObjectId("5c6ecf3d6fd07954a4890689")}> db.getLastinsNRecords"One({"EmployeeName":"Maxwell"}) :"캐롤"});{ "확인" :true, "삽입Id" :ObjectId("5c6ecf496fd07954a489068a")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"밥"});{"확인됨" "insertedId":ObjectId("5c6ecf4e6fd07954a489068b")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Sam"});{ "승인됨":true, "insertedId":ObjectIf795464adb0f getLastNRecordsDemo.insertOne({"EmployeeName":"Robert"});{ "승인된":true, "insertedId":ObjectId("5c6ecf596fd07954a489068d")}> db.getLastNRecordsDemo.insertOne":{"EmployeeName}"(";{ "승인됨" :true, "insertedId" :ObjectId("5c6ecf606fd07954a489068e")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Chris"});{ "승인됨":true, "ObjectIdId" 삽입됨 "5c6ecf686fd07954a489068f")}> db.g etLastNRecordsDemo.insertOne({"EmployeeName":"James"});{ "승인된":true, "insertedId":ObjectId("5c6ecf6f6fd07954a4890690")}> db.getLastNRecordsDemo.insertOne":";{ "승인됨" :true, "insertedId" :ObjectId("5c6ecf756fd07954a4890691")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Ramit"});{ "승인됨":true, "ObjectId" 삽입됨 "5c6ecf7d6fd07954a4890692")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"David"});{ "승인됨":true, "insertedId":ObjectId("5c6ecf8d6fd079064" 

find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다.

> db.getLastNRecordsDemo.find().pretty();

다음은 출력입니다.

{ "_id":ObjectId("5c6ecf3d6fd07954a4890689"), "EmployeeName":"Maxwell" }{ "_id":ObjectId("5c6ecf496fd07954a489068a"), "EmployeeName":"캐롤" "5c6ecf4e6fd07954a489068b"), "EmployeeName":"Bob" }{ "_id":ObjectId("5c6ecf546fd07954a489068c"), "EmployeeName":"Sam" }{ "_id":ObjectIcd59"60a4" 로버트" }{ "_id":ObjectId("5c6ecf606fd07954a489068e"), "EmployeeName":"Mike" }{ "_id":ObjectId("5c6ecf686fd07954a489068f"), "EmployeeName":"_id":"크리스" "5c6ecf6f6fd07954a4890690"), "EmployeeName":"James" }{ "_id":ObjectId("5c6ecf756fd07954a4890691"), "EmployeeName":"Jace"), }{ "_id":ObjectId770 Ramit" }{ "_id" :ObjectId("5c6ecf8d6fd07954a4890693"), "EmployeeName" :"David" }

다음은 $natural 및 limit()를 사용하여 컬렉션에서 마지막 N개의 레코드를 가져오는 쿼리입니다.

> db.getLastNRecordsDemo.find().sort({$natural:-1}).limit(7);

다음은 출력입니다.

{ "_id":ObjectId("5c6ecf8d6fd07954a4890693"), "EmployeeName":"David" }{ "_id":ObjectId("5c6ecf7d6fd07954a4890692"), "EmployeeName":"_Ramit" "5c6ecf756fd07954a4890691"), "EmployeeName":"제이스" }{ "_id":ObjectId("5c6ecf6f6fd07954a4890690"), "EmployeeName":"제임스"), }{80 "_id":ObjectId760 크리스" }{ "_id":ObjectId("5c6ecf606fd07954a489068e"), "EmployeeName":"Mike" }{ "_id":ObjectId("5c6ecf596fd07954a489068d"), "EmployeeName":"로버트"