Только что запустил монго и уже начались проблемы с запросами. у меня есть коллекция под названием «externalTransaction», и я хочу написать эквивалент этого запроса mysql:
select transactionCode,
sum(amount) as totalSum,
count(amount) as totalCount
from externalTransaction
where transactioncode in ('aa','bb','cc')
group by sum(amount)
ниже моя попытка:
{
"collectionName": "externalTransaction",
sort: {transactionCode:-1},
query: {this._id: {$in:['aa','bb','cc']}},
mapReduce:{
'map': 'function(){
emit(this.transactionCode, this.amount);
}',
'reduce': 'function(key, values){
var result = {count: 0, sum: 0.0};
values.forEach(function(value) {
result.count++
result.sum += value.amount;
});
return result;
}',
'out' : 'sumAmount'
}
}
приведенный выше запрос дает мне набор результатов, который выглядит следующим образом:
_id value.count value.sum
ct 2.0 NaN
bb 40.0 NaN
fg 71.0 NaN
fd 36.0 NaN
sd 5.0 NaN
as 4.0 NaN
aa 71.0 NaN
df 4.0 NaN
cc 10.0 NaN
Из документации с версией 2.0.6
я пока не могу использовать aggregation framework
, так как обрабатывать простые запросы, такие как мой, в монго. спасибо за чтение и извините за тривиальность моего вопроса.