mongo 집계 쿼리에서 발생하는 문제
현재 mongo 데이터베이스의 테이블에 대해 집계 쿼리 작업을 수행하고 있는데, 데이터 양이 너무 많아서 데이터베이스에서 얻은 결과를 데이터베이스에 삽입해야 하기 때문에 다음을 삽입하기로 결정했습니다. 쿼리 결과를 임시 컬렉션에 추가합니다. mongo의 $out 작업을 사용하세요. 비즈니스 요구 사항에 따라 이러한 집계 쿼리를 3개 실행해야 합니다. 테스트 결과 $out이 새 컬렉션으로 출력될 때 추가 작업 대신 교체 작업이 수행되는 것으로 나타났습니다.
$out 작업은 현재 데이터베이스에 컬렉션이 아직 없는 경우 새 컬렉션을 생성합니다.
$out 작업으로 지정된 컬렉션이 이미 존재하는 경우 집계가 완료되면 $out 단계는 기존 컬렉션을 새 결과 컬렉션으로 원자적으로 대체합니다. $out 작업은 인덱스를 변경하지 않습니다. 이전 컬렉션에도 있었습니다.
여전히 여러 집계 결과를 하나의 테이블에 넣어야 하는 경우가 있는데 어떻게 해야 합니까?
2.6부터는 Aggregation의 반환 값이 커서입니다. 커서이기 때문에 작동하기 전에 클라이언트의 메모리에 전체 결과 집합을 캐시할 필요가 없습니다. 간단한 아이디어는 커서를 탐색하여 대상 컬렉션에 하나씩 삽입하는 것입니다. 예를 들어 셸에서는 다음과 같습니다.
으아아아