2010-12-17 8 views
0

sorted query가 주어지면 mapReduce 동안 또는 find ($ where)를 사용하여 상대 객체를 참조 할 수 있습니까?MongoDB에서 상대 객체 참조하기

단지 돌아갑니다

[ 
{ 'name' : 'bill', 
    'age' : 20 } 
, 
{ 'name' : 'bill', 
    'age' : 25 } 
] 

find({$where: 'this.age > previousItem.age'}) 

을 감안할 때 :

{ 'name' : 'bill', 
    'age' : 25 } 

답변

0

당신은지도-감소 맥락에서 커서에 액세스 할 수없는, 그래서 당신은 '기억'할 수있는 방법이 없습니다 이전 문서는 것이었다. map-reduce에서 각 문서는 분리되어 처리됩니다..

map-reduce를 여러 샤드에서 동시에 실행할 수 있으므로 성능이 향상됩니다. 앞으로 다중 스레드 맵 축소 작업도 지원 될 수 있습니다. 이 시나리오에서는 컬렉션의 여러 부분을 동시에 처리하므로 실제 '이전 항목'이 없습니다. 현재 스레드의 이전 항목, 현재 샤드의 이전 항목 또는 모든 샤드의 이전 항목이 될 수 있습니다.

예를 들어, 쿼리를 age에 정렬 한 경우 이전에 처리 된 모든 문서의 현재 항목의 나이보다 작거나 같은 나이가됩니다. 미처리 된 모든 항목의 나이는 현재 항목의 나이보다 크거나 같습니다. find()을 사용하여 이러한 항목을 검색 할 수 있지만 성능을 저하시킬 수 있으므로 권장하지 않습니다. 또한 현재 항목에만 액세스 할 수 있습니다. 예를 들어 이전 항목에서 수행하려는 작업이 아닙니다.

나는 map-reduce의 개념을 오해하고 있다고 생각합니다. 달성하려는 목표는 무엇입니까?