我最近升级到MongoDB 2.4并且在发行说明中引用,我遇到了使用db的map函数的问题。发行说明建议重构,但我不清楚我需要采取什么样的路线。
现在该功能的非工作部分如下:
function map() {
var student = db.student.findOne(this.student_id);
var school = db.school.findOne(this.school_id);
...
emit({
bcg_id: student.bcg_id,
...
我不清楚如何在不推荐使用db的情况下将文档从'student'集合传递给'student'变量。
有什么建议吗?
答案 0 :(得分:1)
您不能再在javascript函数内运行查询了。
您可以将数据传递到范围,例如:
res = t.mapReduce( mapper , reducer , { scope : { xx : 1 } } );
但至于重构的大小 - 它取决于原始地图缩减功能的作用。
您可能希望整理新集合中所需的所有数据,然后将地图缩小而不是。