2012-10-19 2 views
0

MongoDb에 요청을 그룹화 할 수있는 방법이 있습니까?더 나은 성능을 위해 mongoDb 요청을 그룹화하는 방법은 무엇입니까?

예를 들어 나는 하나의 collection.find와 3 개의 collection.aggregate 요청을 C# 코드에서 가지고있다.

네트워크를 통해 하나의 요청 만 보내고 조합하는 방법이 있는지 궁금합니다.

+0

원하는 이유를 잘 모릅니다. 네트워크를 통해 전송되는 데이터의 양은 2kb와 비슷할 것입니다. 마이크로 최적화가 아닙니까? – Sammaye

+1

그러나 질문에 대답하기 위해 내가 마지막으로 언급하지 않았으므로 편집 할 수 없습니다. 내가 아는 한 작업 당 하나의 호출입니다. 멀티 쿼리와 같은 SQL은 없다. – Sammaye

+0

다른 서버에서 호스팅되는 Sammaye, MongoDb에 감사드립니다. 데이터 양은 줄이지 만 전화를 걸고 싶지는 않습니다 ... – Cherven

답변

1

MongoDB의 wire protocol은 메시지 당 단일 작업을 위해 설계되었으므로 여러 작업을 단일 요청으로 그룹화 할 수 없습니다. 이 문제에 가장 가까운 것은 bulk insert이지만 실제로는 여러 문서가 필요한 작업 중 하나입니다.

sharded가 아닌 MongoDB 시스템에서는 단일 eval 명령을 사용하여 여러 서버 측 작업을 수행 할 수 있습니다. 이것은 MongoDB에 여러 연산을 수행하는 자바 스크립트 함수를 보내고 결과를 하나의 결과로 채워서 반환되게합니다. 그러나 드라이버를 통해 여러 요청을 보내는 것이 더 좋을 수있는 현실적인 상황을 생각해 보는 것이 어려울 것입니다 (JS의 성능이 낮고 동시성 문제 등이 있음).

관련 문제