MongoDB 문서의 예제보다 약간 더 복잡한 것이 필요하며 머리를 감쌀 수없는 것처럼 보입니다. MongoDB의 map/reduce를 사용하여 두 개의 필드를 그룹으로 묶습니다.
내가 날짜와 유형 모두에 걸쳐 그룹화,{date: "2010-10-10", type: "EVENT_TYPE_1", user_id: 123, ...}
지금 내가 쿼리하여 SQL 그룹에 비슷한 싶어 형태의 개체의 컬렉션을 말해봐. 즉, 매일 각 유형의 이벤트 수가 필요합니다. 또한 user_id로 고유하게 만들고 싶습니다. 같은 날에 더 많은 이벤트가있는 경우 한 번만 계산하십시오.
map/reduce를 사용하여이 작업을 수행하려고합니다.
내가 할
db.logs.mapReduce(
function() {
emit(this.type, 1);
},
function(k, vals) {
var total = 0;
for (var i = 0; i < vals.length; i++)
total += vals[i];
return total;
}
)
유형별로 잘 그룹,하지만 지금은, 내가 어떻게 같은 시간에 날짜별로 그룹? emit()의 키가 배열이 될 수 없다고 생각합니다 (나는 emit([this.date, this.type], 1)
에 대해 생각했습니다). 또한 사용자 별 고유성을 어떻게 보장 할 수 있습니까?
저는 MongoDB로 시작 했으므로 여전히 기본 개념을 파악하는 데 어려움을 겪고 있습니다. 또한, 거기 밖으로 사용할 수있는 많은 설명서가 없습니다. 경험이 많은 사용자의 도움을 주시면 감사하겠습니다. 감사!
couchdb는 배열을 키로 사용할 수 있습니다. 단지 ' – dominic