[英]MongoDB 2.4 MapReduce Refactor
我最近升級到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,因此我不清楚如何將文檔從“學生”集合傳遞到“學生”變量。
有什么建議嗎?
您不再可以在javascript函數內運行查詢。
請參閱: http : //docs.mongodb.org/manual/release-notes/2.4/#additional-limitations-for-map-reduce-and-where-operations
您可以將數據傳遞到范圍內,例如:
res = t.mapReduce( mapper , reducer , { scope : { xx : 1 } } );
但是關於重構的大小-它取決於原始映射的reduce函數的作用。
您可能需要將所有需要的數據整理到一個新集合中,然后運行map reduce來代替它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.