2
쿼리와 함께 mapReduce 명령을 필터링하려고합니다. 이 쿼리는 mapReduce 명령에서 사용하지 않는 것 같습니다. runCommand를 동일한 매개 변수와 함께 사용하면 쿼리 필터가 사용됩니다. 나는 mongodb 2.2.1과 2.0.1을 사용했다.mongodb mapReduce 명령에서 쿼리 필터를 설정할 수 없습니다.
내 mapReduce 함수에 대한 쿼리가 사용되지 않습니다.
m = function() {
if (this.duration > 0) {
emit("dur", this.duration);
}
}
r = function (key, values) {
var index = 0;
var sum = 0;
for (var i = 0; i < values.length; i++) {
sum += values[i];
index++;
}
return sum/index;
}
이 명령은 작동하지 않습니다
res = db.movies.mapReduce(m,r, {out: { inline : 1}},{query:{kinds:'Action'}});
{
"results" : [
{
"_id" : "dur",
"value" : 5148.227224559308
}
],
"timeMillis" : 1849,
"counts" : {
"input" : 105472,
"emit" : 69602,
"reduce" : 106,
"output" : 1
},
"ok" : 1,
}
이 명령 작업 :
res = db.runCommand({mapReduce : "movies", map : m, reduce : r, query : {kinds:'Action'}, out : {inline:1} })
{
"results" : [
{
"_id" : "dur",
"value" : 6134.118191572414
}
],
"timeMillis" : 238,
"counts" : {
"input" : 3577,
"emit" : 2910,
"reduce" : 4,
"output" : 1
},
"ok" : 1
}
을 runCommand으로 쿼리가 사용됩니다. 어떤 아이디어?
감사합니다! 내 일요일을 구 했잖아! – nbulteau