MongoDB MapReduce map函数语法错误求助:筛选特定条件马匹
MongoDB MapReduce Map函数修正方案
你的代码存在几个明显问题,直接修正后的版本和问题说明如下:
错误点说明
- 条件判断用了赋值运算符
=,应该用严格相等比较运算符===(或宽松相等==),否则会把'f'直接赋值给this.gender,而非做相等校验 - 第一个
if语句后的逗号属于多余语法,会直接导致代码报错 - 两个筛选条件需要合并判断,确保只有同时满足的文档才执行
emit
修正后的代码
var mapHorse1 = function() { // 同时校验雌性性别和参赛场次少于50的条件 if (this.gender === 'f' && this.shows < 50) { emit(this.gender, this.shows); } };
代码做了格式化处理,可读性更强:用===避免类型转换带来的潜在问题,用&&确保两个条件同时成立才触发数据输出,完全符合你筛选目标马匹的需求。
内容的提问来源于stack exchange,提问作者kaylo
相关产品推荐
相关产品推荐

