Du kan inte använda DBRef
värden med aggregeringsramverket. Istället måste du använda JavasScript-behandling av mapReduce
för att komma åt egenskapsnamnet som de använder:
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 borde verkligen inte använda DBRef
alls. Användningen är i princip utfasad nu och om du känner att du behöver lite extern referens så bör du "manuellt referera" detta med din egen kod eller implementerat av något annat bibliotek, med vilket du kan göra det på ett mycket mer stödd sätt.