반응형
Map
쿼리한 결과를 reduce할 수 있게 데이터를 모으는 역할
Reduce
모아진 결과를 집계하는 역할
emit(key, value)
reduce의 key와 value로 들어간다.
out
결과로 나온 데이터를 임시로 저장하는 collection
out : "order_totals" -> 나온 결과를 rder_totals에 임시로 저장하겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 |
// 데이터 넣는 부분
var cust = {};
cust.cust_id = "A123"
cust.amount = 500;
cust.status = "A";
cust.cust_id = "A123"
cust.amount = 250;
cust.status = "A";
cust.cust_id = "B212"
cust.amount = 200;
cust.status = "A";
cust.cust_id = "A123"
cust.amount = 300;
cust.status = "D";
db.test3.insert(cust);
db.test3.find();
// mapReduce하는 부분
db.test3.mapReduce(
function(){emit(this.cust_id, this.amount)},
// Array.sum(value) -> value를 모두 더하겠다.
// 값은 order_totals로 들어감
function(key, value){return Array.sum(value)},
{
query : {status : "A"},
out : "order_totals"
}
);
// 결과 값 보기.
db.order_totals.find();
// 결과 창
/* 1 */
{
"_id" : "A123",
"value" : 750.0000000000000000
}
/* 2 */
{
"_id" : "B212",
"value" : 200.0000000000000000
} |
cs |
반응형
'IT > BigData와 MongoDB' 카테고리의 다른 글
INSERT / UPDATE / DELETE / FIND/ MapReduce (0) | 2015.07.08 |
---|---|
Spring-Data-MongoDB 연동 (0) | 2015.07.07 |
Count, Distinct, Group, Map Reduce (0) | 2015.07.07 |
MongoDB 설치 (0) | 2015.07.07 |