如何在Map(/Reduce)函数中继续循环



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

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

当我使用return而不是继续退出函数时,它可以完美地工作,只是我不想结束循环。有什么聪明的办法吗?

谢谢你的建议和更好的选择。

如果从map返回return,则仅从该文档的map返回。不管怎样,其他文档的映射都将被执行。

我建议把你的map改写成这种形式的

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

我认为,这种形式更清晰。它将为有频道的用户发射一些东西,并跳过那些没有频道的用户。

相关内容

  • 没有找到相关文章

最新更新