Du kan ikke bruge DBRef
værdier med aggregeringsrammen. I stedet skal du bruge JavasScript-behandling af mapReduce
for at få adgang til egenskabsnavnet, som de bruger:
db.coll.mapReduce(
function() {
emit( this.source.$ref, this["total_price"] )
},
function(key,values) {
return Array.sum( values );
},
{
"query": { "sold_at": { "$gte": start, "$lt": end } },
"out": { "inline": 1 }
}
)
Du burde virkelig ikke bruge DBRef
overhovedet. Brugen er dybest set forældet nu, og hvis du føler, du har brug for ekstern reference, bør du "manuelt referere" dette med din egen kode eller implementeret af et andet bibliotek, som du kan gøre det på en meget mere understøttet måde.