2016-11-27 7 views
1

レコードが少ないmongodbコレクションがあります。 私のコレクション内のレコードを繰り返し処理して、customObjectを返したいとします。 レコードごとにいくつかの計算を行いたいので、条件に合っていればcustomObjectにエントリを入れてから、最後にcustomObjectを返します。mongo dbのレコードを繰り返し処理し、カスタムオブジェクトを返します。

私はmongoose.js

私の記録は私が計算し、類似オブジェクトと私のコントローラ

で使用されるように戻りたい

Friends:{ 
 
    {name:"John", money_lent:100}, 
 
    {name:"Tom", money_lent:100} 
 
    {name:"Tom", money_lent:100} 
 
    {name:"Jill", money_lent:100} 
 
    {name:"John", money_lent:100} 
 
    {name:"Nate", money_lent:100} 
 
    {name:"John", money_lent:100} 
 
    {name:"Jill", money_lent:100} 
 
    {name:"Nate", money_lent:100} 
 
    {name:"Nate", money_lent:100} 
 
    {name:"Nate", money_lent:100} 
 
    {name:"Rob", money_lent:100} 
 
    
 
}

と言うを使用して、それをしています

{ 
 
    {name:"John", times_money_lent:2} 
 
    {name:"Tom", times_money_lent:2} 
 
    {name:"Jill", times_money_lent:2} 
 
    {name:"Nate", times_money_lent:4} 
 
    {name:"Rob", times_money_lent:1} 
 
}
人の

答えて

0

友人、それはリストなので

Friends: [...] 

ようにする必要があります。あなたの質問に見られる構文は無効です。ところで

var result = new Array(); 
Friends.map(function (friend) { 
    var r = grep(result, function (val) { 
     return val.name == friend.name; 
    }); 
    if(r.length == 0) { 
     result.push({name:friend.name, times_money_lent:1} 
    } else { 
     r[0].times_money_lent ++; 
    } 
}); 

:リストとして友達と、あなたはその後、uは、このような計算を行うことができます、あなたはすでにあなたのデータはモンゴからフェッチ持っていると仮定すると、

Friends.map (function (friend) { 
    return { name: friend.name, 
      times_money_lent: friend.money_lent/10 }; 
}); 

または何

+0

レコードがmongodbに保存されています –

+0

ええ、あなたはそれらを取得するためにモンゴーズを使用していると言いましたので、今はあなたのJavascriptコードに含まれています。 – tjb1982

0

を行うことができますgrepを使用するには、grep-from-arrayをインストールする必要があります。それ以外の場合は、自分で検索機能を実装する必要があります。

関連する問題