[MONGODB] MongoDB를 집계 명령 / 파이프 라인에 행 번호의 어떤 종류를 추가
MONGODBMongoDB를 집계 명령 / 파이프 라인에 행 번호의 어떤 종류를 추가
아이디어는 MongoDB를 집계 명령 / 파이프 라인에 행 번호의 종류를 반환하는 것입니다. 우리는 RDBM로했습니다 무엇 유사합니다.
이 행 / 수에 정확히 일치하는 경우 그것은 중요하지 고유 번호이어야한다.
같은 쿼리 :
[ { $match: { "author" : { $ne: 1 } }} , { $limit: 1000000 } ]
반환 :
{ "rownum" : 0, "title" : "The Banquet", "author" : "Dante", "copies" : 2 }
{ "rownum" : 1, "title" : "Divine Comedy", "author" : "Dante", "copies" : 1 }
{ "rownum" : 2, "title" : "Eclogues", "author" : "Dante", "copies" : 2 }
{ "rownum" : 3, "title" : "The Odyssey", "author" : "Homer", "copies" : 10 }
{ "rownum" : 4, "title" : "Iliad", "author" : "Homer", "copies" : 10 }
그것은 MongoDB의이 ROWNUM을 생성 할 수 있습니까?
해결법
-
==============================
1.큰 쿼리의 성능에 대한 확인, 그러나 이것은 적어도 옵션입니다하지 않습니다.
큰 쿼리의 성능에 대한 확인, 그러나 이것은 적어도 옵션입니다하지 않습니다.
당신은 / 그룹화 같은 includeArrayIndex과 함께 여유를 즐기실 다음 밀어하여 배열에 결과를 추가 할 수 있습니다 :
[ {$match: {author: {$ne: 1}}}, {$limit: 10000}, {$group: { _id: 1, book: {$push: {title: '$title', author: '$author', copies: '$copies'}} }}, {$unwind: {path: '$book', includeArrayIndex: 'rownum'}}, {$project: { author: '$book.author', title: '$book.title', copies: '$book.copies', rownum: 1 }} ]
데이터베이스 레코드의 큰 금액을 포함, 당신은 PAGINATE하려는 경우 지금, 당신은 무대와 페이지 당 표시 할대로 다음 $ 한계 10 또는 20를 건너 뛰 $를 사용할 수 있으며, 단지 $에서 번호를 추가 건너 뛰기 당신의 ROWNUM에 무대와 당신이 그들을 열거하는 모든 결과를 밀어하지 않고 실제 위치를 얻을 수 있습니다.
from https://stackoverflow.com/questions/35174554/add-some-kind-of-row-number-to-a-mongodb-aggregate-command-pipeline by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 전화하여 MongoDB의 집계 내부 기능? (0) | 2019.12.10 |
---|---|
[MONGODB] 집계에 대한 구조 생성 (0) | 2019.12.10 |
[MONGODB] 계산 조건에 몽고 정렬 (0) | 2019.12.10 |
[MONGODB] MongoDB를 단일 쿼리로 여러 카운트 (0) | 2019.12.10 |
[MONGODB] 나는 MongoDB에 대한 쿼리에 정규식 변수를 사용하는 방법 (0) | 2019.12.10 |