0

我在 MongoDB 中有一个 Map 函数,稍后我将使用 Reduce。我使用的集合中有很多用户,并且用户拥有一些频道。但是,有些用户没有任何通道,并且 Map/Reduce 函数在我的脚本中引发错误。

     map = Code("function () {"
                "  if(!this.channels) continue;"
                "  this.channels.forEach(function(z) {"
                "       emit(z, 1);"
                "   });"
                "}")

当我使用 return 而不是 continue 退出该函数时,它可以完美地工作,只是我不想结束循环。有什么聪明的方法可以解决这个问题吗?

感谢您的建议和更好的智慧。

4

1 回答 1

0

如果您return来自,则仅针对此文档map返回 from 。map不管怎样,其他文档的映射将被执行。

我建议你重写map这个表格

function () {
  if(this.channels) {
    this.channels.forEach(function(z) {
       emit(z, 1);
    });
  }
}

我想,这个表格更清楚。它会为有频道的用户发出一些东西,并跳过那些没有频道的用户。

于 2012-07-30T14:47:25.123 回答