【发布时间】:2018-01-27 14:10:17
【问题描述】:
这是我收藏的文档示例:
{
"_id": "5a68a9308117670afc3522cd",
"username": "user1",
"favoriteItems": {
"5a0c6711fb3aac66aafe26c6": {
"_id": "5a0c6711fb3aac66aafe26c6",
"name": "item1",
},
"5a0c6b83fd3eb67969316dd7": {
"_id": "5a0c6b83fd3eb67969316dd7",
"name": "item2",
},
"5a0c6b83fd3eb67969316de4": {
"_id": "5a0c6b83fd3eb67969316de4",
"name": "item3"
}
}
}
我正在使用 mongoDB mapReduce 功能来计算一个项目被用户喜欢的次数。
这是我的 map 和 reduce 函数:
var mapFun = function () {
Object.values(this.favoriteItems).forEach(item => {
emit(item, 1)
})
}
var redFun = function (item, values) {
count = 0
for(i = 0; i<values.length; i++) {
count += values[i]
}
return count
}
但是,我得到错误 Object.values is not a function:
2018-01-27T13:58:08.494+0000 E QUERY [thread1] Error: map reduce failed:{
"ok" : 0,
"errmsg" : "TypeError: Object.values is not a function :\n@:2:5\n",
"code" : 139,
"codeName" : "JSInterpreterFailure"
}
【问题讨论】:
-
你使用的 NodeJs 版本是什么?
-
v8.9.4 是 LTS。我是否需要节点 9.4.0 才能使用 Object.values()?
标签: javascript mongodb mapreduce nosql