2013-02-23 2 views
0

MognoDB를 처음 사용했습니다. 내 컴퓨터가지도 축소 기능을 지원하는지 여부를 어떻게 확인할 수 있습니까? map-reduce 코드가 다른 컴퓨터에서는 작동하지만 내 컴퓨터에서는 작동하지 않습니다.Mongodb MapReduce 지원 확인

+3

모든 MongoDB 서버는 map-reduce를 지원합니다. 어떤 방식으로 작동하지 않습니까? – JohnnyHK

+0

고마워요! MapReduce를 지원한다는 의미입니다. 나는 그것을 명시 적으로 가능하게해서는 안된다. 내 코드는 확장 기능을 사용하여 Yii에 붙여 넣을 수 없습니다. 그러나 그것은 "밖으로" –

+0

몽고 껍질에서 실행되는 그냥 자바 스크립트 기능을 사용하여 컬렉션을 채우기 복용량 것 ... –

답변

0

지도 축소는 절차 일뿐 특정 서비스 또는 라이브러리가 아닙니다. 당신은 쉽게 같은 쉘에 코드를지도-감소 구현할 수보다 이 같은 MongoDB를 기본 쿼리를 수행하는 경우 ...

> db.collectionname.find() 

...

나를 MongoDB의 요리 책에서 기본 예제를 설명하겠습니다.

귀하의 데이터 문서 (SQL 행에 있음)가 다음과 같다고 가정하십시오.

> db.pageviews.find() 

{ 
"url" : "http://example.com/photos", 
"user_id" : ObjectID('4be1c916e031933119d78b30'), 
"date": "Wed May 05 2010 15:37:58 GMT-0400 (EDT)" 
} 

이것은 모든 웹 사이트의 페이지 뷰 문서입니다.

솔루션을 사용하려면 페이지 뷰를 일별로 그룹화 한 다음 총 사용자 방문수와 그 날의 고유 방문수를 계산해야합니다.

> map = function() { 
    day = Date.UTC(this.date.getFullYear(), this.date.getMonth(), this.date.getDate()); 

    emit({day: day, user_id: this.user_id}, {count: 1}); 
} 
지도 콘솔에 다음과 같이 실행됩니다

..

> reduce = function(key, values) { 
    var count = 0; 

    values.forEach(function(v) { 
    count += v['count']; 
    }); 

    return {count: count}; 
} 

하여 다음과 같이 실행됩니다 감소 ...

다음

db.pageviews.mapReduce(map, reduce, {out: pageview_results}); 

이 당신이 기본이다 지도 축소 ...

이제 collection pageview_results를 쿼리하면 매핑 된 문서 수가 줄어 듭니다.

> db.pageview_results.find() 
관련 문제