簡體   English   中英

MongoDB 2.4 MapReduce重構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM