配列で forEach() を使用するとすぐに問題が発生する MongoDB で Map 関数を作成しています。
ユーザーは次のようになります。
"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});
});
}
}
mongo で 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
}
これは簡単な問題かもしれませんが、どこが間違っているのかわかりません。
この問題について何か助けていただければ幸いです。
ありがとう!