Sie können DBRef
nicht verwenden
Werte mit dem Aggregationsframework. Stattdessen müssen Sie die JavasScript-Verarbeitung von mapReduce
verwenden um auf die Eigenschaftsbenennung zuzugreifen, die sie verwenden:
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 }
}
)
Sie sollten DBRef
wirklich nicht verwenden überhaupt. Die Verwendung ist jetzt im Grunde veraltet, und wenn Sie das Gefühl haben, dass Sie eine externe Referenzierung benötigen, sollten Sie dies mit Ihrem eigenen Code "manuell referenzieren" oder von einer anderen Bibliothek implementieren, mit der Sie dies auf eine viel besser unterstützte Weise tun können. P>