mgo를 사용한 효율적인 MongoDB 페이지 매김
MongoDB는 Query.Skip() 및 Query.Limit()을 사용하여 페이지 매김을 기본적으로 지원합니다. 그러나 MongoDB는 건너뛰어야 하는 문서를 생략하기 위해 모든 결과 문서를 반복해야 하기 때문에 대규모 결과 세트의 경우 이 방법이 느릴 수 있습니다.
MongoDB는cursor.min() 기능을 제공하여 솔루션을 제공합니다. 결과를 나열할 첫 번째 색인 항목을 지정할 수 있습니다. 불행하게도 mgo.v2 드라이버에는 커서.min()을 지정하는 API 호출이 없습니다.
mgo.v2와 함께 MongoDB의cursor.min() 기능을 사용하여 효율적인 페이징을 달성하려면 Database.Run을 사용할 수 있습니다. () 메소드를 사용하면 MongoDB 명령을 직접 실행할 수 있습니다. find 명령은 min 인수 지정을 지원합니다.
각 결과 배치 후에 쿼리 결과의 마지막 문서에서 최소 문서를 생성하고 다음 배치에 대한 쿼리를 실행하기 전에 이를 설정할 수 있습니다. 최소 문서에는 쿼리를 실행하는 데 사용되는 인덱스 항목의 값이 포함되어야 합니다.
이 프로세스는 답변에 설명된 대로 수동으로 수행하거나 github.com/과 같은 타사 라이브러리를 사용할 수 있습니다. icza/minquery는 커서 지정을 포함하여 MongoDB 찾기 명령을 구성하고 실행하기 위한 래퍼를 제공합니다.
minquery를 사용하면 다음과 같이 최소 커서를 지정할 수 있습니다. this:
q := minquery.New(session.DB(""), "users", bson.M{"country": "USA"}). Sort("name", "_id").Limit(10). Cursor(cursor)
여기서 커서는 이전 배치에서 얻은 커서입니다.
MinQuery.All()을 사용할 때 커서 필드의 이름을 마지막 논쟁. 또한 부분 결과를 검색하는 경우 MinQuery.All()에 모든 값이 필요하므로 직접 사용하지 않더라도 커서(인덱스 항목)의 일부인 모든 필드를 포함해야 합니다. 커서 필드를 사용하여 적절한 커서 값을 생성하세요.
위 내용은 mgo.v2를 사용하여 효율적인 MongoDB 페이지 매김을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!