programing

MongoDB에서 집계($match)와 찾기의 차이?

newsource 2023. 6. 24. 09:14

MongoDB에서 집계($match)와 찾기의 차이?

사이의 차이점은 무엇입니까?$match집계 함수 내부에 사용된 연산자와 정규 함수findMongodb에서?

왜 안 그래요?findfunction을 사용하면 aggregate function과 같은 필드 이름을 바꿀 수 있습니다. 예를 들어 다음 문자열을 전달할 수 있습니다.

{ "$project" : { "OrderNumber" : "$PurchaseOrder.OrderNumber" , "ShipDate" : "$PurchaseOrder.ShipDate"}}

반면에, 찾기는 이것을 허용하지 않습니다.

집계 출력이 DB 커서 또는 목록으로 반환되지 않는 이유는 무엇입니까? 또한 반환된 문서의 개수를 가져올 수 없는 이유는 무엇입니까?

감사해요.

집계 출력이 DB 커서 또는 목록으로 반환되지 않는 이유는 무엇입니까?

집계 프레임워크는 지도 축소가 필요한 쉬운 문제를 해결하기 위해 만들어졌습니다.

이 프레임워크는 일반적으로 전체 데이터베이스를 입력으로 사용하고 적은 수의 문서를 출력으로 필요로 하는 데이터를 계산하는 데 사용됩니다.

집계 함수 내부에서 사용되는 $match 연산자와 Mongodb에서 일반 찾기의 차이점은 무엇입니까?

말씀하신 것처럼 반품 타입이 다른 점 중 하나입니다.작업 출력 반환을 DB 커서로 찾습니다.

기타 차이점:

그리고 왜 우리는 반환된 서류의 개수를 알 수 없습니까?

넌 할 수 있다.결과 배열의 요소 수를 세거나 파이프 끝에 다음 명령을 추가합니다.

{$group: {_id: null, count: {$sum: 1}}}

find 함수가 집계 함수처럼 필드 이름의 이름을 바꿀 수 없는 이유는 무엇입니까?

MongoDB는 젊고 기능은 여전히 제공되고 있습니다.아마도 미래 버전에서는 그렇게 할 수 있을 것입니다.필드 이름을 변경하는 것이 찾기보다 집계에서 더 중요합니다.

EDIT(2014/02/26):

MongoDB 2.6 집계 작업은 커서를 반환합니다.

편집(2014/04/09):

MongoDB 2.6은 예측된 집계 변경 사항과 함께 릴리스되었습니다.

집계와 관련하여 몇 가지 사항을 조사한 결과 다음과 같은 문의가 있었습니다.160,000개 문서의 테이블에서 내림차순 정렬을 수행하여 출력을 몇 개 문서로 제한했습니다.

  1. 집계 명령이 찾기 명령보다 느립니다.
  2. 이 같이데액경이우세할과 같은 한다면,ToList()집계 명령이 찾기보다 빠릅니다.
  3. 총 시간(포인트 1 + 2)에서 보면 명령이 동일한 것 같습니다.

어쩌면 집계가 자동으로 다음을 호출할지도 모릅니다.ToList()다시 부를 필요가 없습니다.당신이 전화하지 않는다면,ToList() 후에 그후에.find()통화가 훨씬 더 빠를 것입니다.

7 [ms] 대 50 [ms] (5개 문서)

언급URL : https://stackoverflow.com/questions/16552433/difference-between-aggregate-match-and-find-in-mongodb