1
我在MongoDB中創建一個Map函數,當我在數組上使用forEach()時就會出現問題。MongoDB map/reduce,forEach不是函數嗎?
這是一個用戶可能看怎麼樣:
"channels" : [
"Channel 1",
"Channel 2",
],
"user_id" : "somehash"
這是導致錯誤我的地圖功能:
var map = function() {
if(this.channels && this.user_id) {
var user_id = this.user_id;
this.channels.forEach(function(z, user_id) {
emit(z, {user: user_id});
});
}
}
當我跑我的Map/Reduce在蒙戈我用的是以下命令,我也得到以下錯誤:
> db.users.mapReduce(map, reduce, {out : "myoutput" });
Wed Aug 1 12:48:11 uncaught exception: map reduce failed:{
"assertion" : "map invoke failed: JS Error: TypeError: this.channels.forEach is not a function nofile_b:3",
"assertionCode" : 9014,
"errmsg" : "db assertion failure",
"ok" : 0
}
我試過一些不同的方法和n一個似乎工作,這可能是一個簡單的問題,但我不明白我在哪裏做錯了。
很高興在這個問題上得到一些幫助。
謝謝!
不確定變量的類型是什麼* this.channels *,但它接縫它不是一個數組或對象。 你是如何創建它? – 2012-08-01 11:21:03
http://stackoverflow.com/a/5572089/752568 – thinklinux 2012-08-01 11:22:29
這是一個數組! :) – Ms01 2012-08-01 11:23:40