我有一个记录很少的mongodb集合。 我想迭代我的集合中的记录并返回一个customObject。 对于每个记录,我想对它做一些计算,并相应地在我的customObject中包含一个条目,如果它符合我的条件,然后最后返回customObject。
我正在使用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 :(得分:0)
朋友需要像
Friends: [...]
因为它是一个列表。我在你的问题中看到的语法是无效的。以朋友为列表,你可以做到
Friends.map (function (friend) {
return { name: friend.name,
times_money_lent: friend.money_lent / 10 };
});
或者其他什么
答案 1 :(得分:0)
假设您已经从mongo获取了数据,那么您可以像这样进行计算:
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 ++;
}
});
顺便说一下,你需要安装grep-from-array
才能使用grep!否则你需要自己实现搜索功能。