`db.dvdrent.mapReduce(`
function(){
if(this.payment !== undefined && this.payment !== null && this.payment.date !== undefined && this.payment.payment_date !== null &&
this.film.rating === 'G' && this.film.length > 120){
var film = {title: this.film.title};
emit(film, {posudba: [{rentaldate: new Date(this.rental_date), amount: this.payment.amount}]});
}
}
`, `
function(key, values){
var rv = {posudba: []};
values.forEach(function(film){
rv.posudba = rv.posudba.concat(film.posudba);
});
return rv;
}
`, {
"finalize": `function(key, values){
var value = {rentals: 0,
amount: 0,
days: 0,
amountPerDay: 0};
var listaDatuma = [];
var listaCijena = [];
var min_date = null;
var max_date = null;
values.posudba.forEach(function(p){
listaDatuma.push(p.rentaldate);
listaCijena.push(p.amount);
});
if(listaCijena.length > 0){
value.rentals = listaCijena.length;
for(var i = 0; i < listaCijena.length; i++){
am += listaCijena[i];
}
}
if(listaDatuma.length > 0){
for(var i = 0; i < listaDatuma.length; i++){
var datum = listaDatuma[i];
if( min_date !== null){
if(datum < min_date){
min_date = datum;
}
}else{
min_date = datum;
}
if(max_date !== null){
if(datum > max_date){
max_date = datum;
}
} else{
max_date = datum;
}
}
}
var razlika = Math.round((max_date-min_date)/(1000*60*60*24));
value.days = razlika;
value.amount = Math.round(am * 100) / 100;
value.amountPerDay = Math.round((value.amount/value.days) * 1000) / 1000;
return value;
}`
});`
jel moze pomoc kako da ovo pretvorim u taj CR ?