У меня есть карта уменьшить функцию, которая работает над коллекцией следующим образом:MongoDB Карта Уменьшить - Доработка пропустить некоторые результаты
function Map() {
emit (
this.name,
{
count : 1,
flag : this.flag
}
);
}
function Reduce(key, values) {
var count = 0;
var flag = false;
for (var i in values){
count = count + 1;
if (i.flag)
flag = true;
}
var reduced = {
count : count,
flag : flag
}
return reduced;
}
function Finalize(key, reduced) {
if (reduced.count>10 || reduced.flag){
var finalized = {
"count" : reduced.count
}
return reduced;
}
return null;
}
То, что я пытаюсь сделать, это то, что Доработка будет возвращать только объекты, которые пропускам определенный порог (например, count> 10). В настоящее время он все еще возвращает объекты, а счетчик просто равен нулю.
Любые идеи?
Спасибо Дерик. Я не могу использовать агрегацию, так как есть еще одна логика для карты/сокращения, которую я не использовал для упрощения вопроса. – checklist
Просьба указать, что в вопросе ... A/F более мощный, чем вы думаете! – Derick
Я добавил более сложный пример, когда счетчик должен быть больше 3 ИЛИ один из элементов отмечен – checklist