[MONGODB] 어떻게하여 MongoDB의 범위 쿼리를 사용하여 페이지 매김을 할?
MONGODB어떻게하여 MongoDB의 범위 쿼리를 사용하여 페이지 매김을 할?
난 여전히 기능을 배우고 이후 아마도 뭔가를 누락하고 MongoDB를의 아웃하지만 컬렉션을 페이징와 I의 도움이 필요.
나는 이름 목록이있는 컬렉션이 있습니다.
쇠고기의 하단 라운드 닭 가슴살 6온스 닭 가슴살 8온스 닭 가슴살 8온스 닭 가슴살 8온스 닭 가슴살 임의 닭다리 닭 안심 닭 허벅지 코셔 소금
나는 "제품 이름은 _id"에 복합 인덱스를 만들었습니다.
나는이 쿼리를 실행합니다 :
db.ProductGuideItem.find( { ProductName: { $gt: "Chicken Breast 8oz" } } ).sort({ProductName:1,_id:1}).limit(3);
공지 사항 3 "닭 가슴살 8온스"항목이 있습니다.
내가 그 쿼리를 실행하면 내가 얻을 ... 닭 가슴살 임의 닭다리 닭 안심
나는 페이징 상단에서 시작 된 경우. 쿼리가 놓친 것 다른 2 "닭 가슴살 8온스".
각 페이지는 3 개 항목을 가질 수 있고 나는 2 페이지를보고 싶다면 그럼 내가 볼 수 .. 닭 가슴살 8온스 닭 가슴살 8온스 닭 가슴살 랜덤.
하지만 난 아니에요. 그것은 지난 닭 가슴살 8온스에가는 대신에 거기에서 시작하고있다.
이 주위에 방법이 있나요? 목록 반대의 방법을 분류 한 경우에도 어떻게 이런 짓을 했을까?
해결법
-
==============================
1.컬렉션은 내가 중복 값을 가지고 호출 된 이후 나는 제품 이름과 ID에 복합 인덱스를 생성했다.
컬렉션은 내가 중복 값을 가지고 호출 된 이후 나는 제품 이름과 ID에 복합 인덱스를 생성했다.
복합 인덱스 만들기
db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});
이것은 내 문제를 해결했다. 참조 : https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ
이 값을 가지고 가정 :
{a:1, b:1} {a:2, b:1} {a:2, b:2} {a:2, b:3} {a:3, b:1}
당신은 범위 기반 매김 (2 페이지 크기)이 작업을 수행 그래서 :
1 페이지
find().sort({a:1, b:1}).limit(2) {a:1, b:1} {a:2, b:1}
2 페이지
find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2) {a:2, b:2} {a:2, b:3}
3 페이지
find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2) {a:3, b:1}
여기에 $ 최소 / 최대에 대한 문서입니다 : http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers
당신이 컬렉션에 중복 값이없는 경우에는 사용 최소 및 최대 만들거나 복합 인덱스 할 필요가 없습니다. 당신은 $ LT & $ 하였다 사용할 수 있습니다.
-
==============================
2.당신은 커서에 건너 호출 할 필요가
당신은 커서에 건너 호출 할 필요가
건너 커서에 MongoDB의 설명서를 참조하십시오 페이징 "결과를" "이 방법은 구현에 유용 할 수 있습니다."
이 예제는 MongoDB를의 예에서 가져옵니다
function printStudents(pageNumber, nPerPage) { print("Page: " + pageNumber); db.students.find().skip((pageNumber-1)*nPerPage).limit(nPerPage).forEach( function(student) { print(student.name + "<p>"); } ); }
from https://stackoverflow.com/questions/5525304/how-to-do-pagination-using-range-queries-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 자바 스크립트 문자열에 OBJECTID (MongoDB를를) 변환 (0) | 2019.12.17 |
---|---|
[MONGODB] 우리는 봄 부트를 사용하여 MongoDB를위한 자동 생성 된 필드를 만들 수있는 방법 (0) | 2019.12.17 |
[MONGODB] MongoDB의의 속성을 가진 많은 관계로 많은 대표 모범 모델 (0) | 2019.12.17 |
[MONGODB] MongoDB를 복합 키 (0) | 2019.12.17 |
[MONGODB] 봄의 데이터 MongoDB를 : MappingMongoConverter의 제거 _class (0) | 2019.12.17 |