我在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);
});
}
}
我认为,这种形式更清晰。它将为有频道的用户发射一些东西,并跳过那些没有频道的用户。