2011-10-31 16 views
2

をチェック存在する私はMongoDBのグループ配列値が

[Title] => test - Title - 33 
[readedBy] => Array (0 => 5999, 
        1 => 85343 
) 
[clickedBy] => Array (
) 
[deletedBy] => Array (
) 

のようなエントリを探します持っていると私は私のグループにチェックしたいプッシュするRelevanアレイであり、私のIDである場合、関数

function (obj, prev) { 
     obj.readedBy.forEach(function (doc){ 
      if(doc == 800){ 
       prev.status1.push(obj); 
      }else{ 
       prev.status2.push(obj); 
      } 
     }); 
    } 

を減らしますそれを右のステータス配列に追加します。 Foreachは解決策がありません。そのID配列は100Kを超えて大きくなるためです。 良い方法がありますか?それとも、その解決策はごみですか?

答えて

1

これまでのところ、私が集めたものからmongodb map/reduceを使用すると、マップを使用するときのほとんどがO(n)プロセスに苦しんでいます。つまり、.forEach )を結果セットに追加します。それらはノードを追加するにつれてより速くなります。あなたのコレクションを破るように。

関連する問題