2016-06-16 4 views
0

쿼리를 기반으로 컬렉션의 총 문서 수를 얻어야합니다. 이 코드를 사용하여 DB에서 결과를 얻습니다.이 배열을 반환하고이 배열의 길이를 추출합니다. 그러나 때때로 16MB 제한 오류가 발생합니다. 그래서 내가 무엇을 찾고있어 내가이 있기 때문에, 서버 측에서 유성을 사용하여이 코드를 쓰고 있어요 언급하는 것을 잊었다

var result; 
var pipeline =[ 
    { 
    "$match": { 
     "submission_time": { 
     "$gt": "Wed Jun 01 2016 00:00:00 GMT-0600 (CST)", 
     "$lt": "Wed Jun 15 2016 23:59:59 GMT-0600 (CST)" 
     } 
    } 
    }, 
    { 
    "$project": { 
     "account": 1, 
     "ru_msgsnd": 1, 
     "ru_minflt": 1, 
     "slots": 1, 
     "usage.cpu": 1, 
     "usage.mem": 1, 
     "submission_time": 1 
    } 
    } 
] 
result = collection_name.aggregate(pipeline); 
return result.length; 

이 쿼리에 문서의 총량에 대한 정수를 얻을 수있는 방법이다 수령액이 250,000 건 이상입니다.

감사합니다. :-)

+1

귀하의 검색어에 대해 알아 차 렸던 두 가지 사실 : 날짜가 문자열로 저장되므로 문자열 필드에 대해 비교 연산자를 사용하면 정밀도가 크게 감소하여 적절한 'Date()'객체와 비교할 때와 동일한 결과가 발생하지 않습니다. 둘째, 적절한 날짜를 사용하면 'count()'가 정상적으로 처리되므로 쿼리 카운트를 수행하는 집계 프레임 워크가 반드시 필요한 것은 아닙니다. – chridam

+0

안녕하세요 @chridam 이건 그냥 예제입니다, 내 실제 코드에서 Date 객체를'$ limit'으로 사용하고 쿼리가 예상대로 작동합니다. 그 후 나는'$ limit'없이 실제 총계를 얻기 위해 코드를 재사용하지만이 문제에 봉착한다. .count() 문제는 유성 앱에서이 작업을 수행하고 있다는 것입니다. 도와 주셔서 다시 한번 감사드립니다 :-) –

답변

0

게시 횟수가 tmeasday:publish-counts입니다. 그러나 귀하의 데이터가 큰 경우 추천하지 않는다고합니다.

집계를 사용하는 대신 게시를 사용하여 집계를 게시해야합니다. 카운트를 게시하는 예제 (here)를 찾을 수 있습니다. 희망이 당신을 도울 것입니다.

관련 문제