MongoDB에서 집계($match)와 찾기의 차이?
사이의 차이점은 무엇입니까?$match
집계 함수 내부에 사용된 연산자와 정규 함수find
Mongodb에서?
왜 안 그래요?find
function을 사용하면 aggregate function과 같은 필드 이름을 바꿀 수 있습니다. 예를 들어 다음 문자열을 전달할 수 있습니다.
{ "$project" : { "OrderNumber" : "$PurchaseOrder.OrderNumber" , "ShipDate" : "$PurchaseOrder.ShipDate"}}
반면에, 찾기는 이것을 허용하지 않습니다.
집계 출력이 DB 커서 또는 목록으로 반환되지 않는 이유는 무엇입니까? 또한 반환된 문서의 개수를 가져올 수 없는 이유는 무엇입니까?
감사해요.
집계 출력이 DB 커서 또는 목록으로 반환되지 않는 이유는 무엇입니까?
집계 프레임워크는 지도 축소가 필요한 쉬운 문제를 해결하기 위해 만들어졌습니다.
이 프레임워크는 일반적으로 전체 데이터베이스를 입력으로 사용하고 적은 수의 문서를 출력으로 필요로 하는 데이터를 계산하는 데 사용됩니다.
집계 함수 내부에서 사용되는 $match 연산자와 Mongodb에서 일반 찾기의 차이점은 무엇입니까?
말씀하신 것처럼 반품 타입이 다른 점 중 하나입니다.작업 출력 반환을 DB 커서로 찾습니다.
기타 차이점:
- 집계 결과는 16MB 미만이어야 합니다.샤드를 사용하는 경우, 전체 데이터는 첫 번째 $group 또는 $종류 이후에 단일 지점에서 수집되어야 합니다.
- $match의 목적은 집계의 성능을 향상시키는 것이지만 집계 성능을 향상시키는 것과 같은 다른 용도도 있습니다.
그리고 왜 우리는 반환된 서류의 개수를 알 수 없습니까?
넌 할 수 있다.결과 배열의 요소 수를 세거나 파이프 끝에 다음 명령을 추가합니다.
{$group: {_id: null, count: {$sum: 1}}}
find 함수가 집계 함수처럼 필드 이름의 이름을 바꿀 수 없는 이유는 무엇입니까?
MongoDB는 젊고 기능은 여전히 제공되고 있습니다.아마도 미래 버전에서는 그렇게 할 수 있을 것입니다.필드 이름을 변경하는 것이 찾기보다 집계에서 더 중요합니다.
EDIT(2014/02/26):
MongoDB 2.6 집계 작업은 커서를 반환합니다.
편집(2014/04/09):
MongoDB 2.6은 예측된 집계 변경 사항과 함께 릴리스되었습니다.
집계와 관련하여 몇 가지 사항을 조사한 결과 다음과 같은 문의가 있었습니다.160,000개 문서의 테이블에서 내림차순 정렬을 수행하여 출력을 몇 개 문서로 제한했습니다.
- 집계 명령이 찾기 명령보다 느립니다.
- 이 같이데액경이우세할과 같은 한다면,
ToList()
집계 명령이 찾기보다 빠릅니다. - 총 시간(포인트 1 + 2)에서 보면 명령이 동일한 것 같습니다.
어쩌면 집계가 자동으로 다음을 호출할지도 모릅니다.ToList()
다시 부를 필요가 없습니다.당신이 전화하지 않는다면,ToList()
후에 그후에.find()
통화가 훨씬 더 빠를 것입니다.
7 [ms] 대 50 [ms] (5개 문서)
언급URL : https://stackoverflow.com/questions/16552433/difference-between-aggregate-match-and-find-in-mongodb
'programing' 카테고리의 다른 글
MongoDB의 .updateOne이 Node.js에서 작동하지 않습니다. (0) | 2023.06.24 |
---|---|
Twitter 부트스트랩에서 navbar 색상 변경 (0) | 2023.06.24 |
MS SQL에서 지난 30분 동안의 기록을 검색하는 방법은 무엇입니까? (0) | 2023.06.24 |
git init를 두 번 실행하면 리포지토리가 초기화됩니까, 아니면 기존 repo가 다시 초기화됩니까? (0) | 2023.06.24 |
데이터베이스 공급자 유형당 허용 가능한 최대 매개 변수 수는 몇 개입니까? (0) | 2023.06.24 |