Je suis en train d'effectuer MapReduce sur ce genre de jeu de données:Pymongo MapReduce comme somme de l'élément sous-tableau
{
"_id": "599861ce7ce78cd973746906",
"name": "Macias Rosario",
"col": [
{
"date": "15/03/2016",
"name": "MAGNEATO",
"amount": 313.86
},
{
"date": "08/08/2016",
"name": "FORTEAN",
"amount": 151.06
},
{
"date": "05/11/2014",
"name": "ECRATIC",
"amount": 291.68
}
]
}
L'objectif est de résumer tout montant pour le nom Macias Rosario. À l'heure actuelle, je l'ai fait avec mon code pour regrouper tous par sous-éléments this.col.name
sur cette façon:
mapper = Code("""
function() {
for (var index = 0; index < this.col.length; ++index) {
var col = this.col[index];
emit(col.name, col.amount);
}
}
""")
reducer = Code("""
function(key, values) {
var total = 0;
for(var i = 0; i < values.length; ++i){
total += values[i];
}
return value.price;
}
""")
result = collection.map_reduce(mapper, reducer, "myresult")
Quelqu'un at-il avoir une idée comment référencer, ou d'un groupe par this.name
et non this.col.name
parce que je ne sais plus et je suis conduire des écrous? PS ne me suggère pas d'utiliser aggregate
, a fait de cette façon, essayer de cette façon aussi :) Cordialement,