MongoDB:MapReduceでscopeで関数を渡せない場合の対処法

間違った書き方
db.userlog.mapReduce(m,r, { query : query , scope : myfunc ,  out : {inline:1} } );
正しい書き方
db.userlog.mapReduce(m,r, { query : query , scope : {myfunc : myfunc} ,  out : {inline:1} } );

参考

MongoDB:MapReduceでscopeを使って関数を渡す方法

scopeに関しては本家マニュアルが非常にわかりにくいので、マニュアルを見るよりテストコードを見ましょう。 https://github.com/mongodb/mongo/blob/master/jstests/mr5.js
カテゴリ: