Você não pode usar
DBRef
valores com a estrutura de agregação. Em vez disso, você precisa usar o processamento JavasScript de mapReduce
para acessar a nomenclatura de propriedade que eles usam: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 }
}
)
Você realmente não deveria estar usando
DBRef
de forma alguma. O uso está basicamente obsoleto agora e se você sentir que precisa de alguma referência externa, deve "referenciar manualmente" isso com seu próprio código ou implementado por alguma outra biblioteca, com a qual você pode fazer isso de uma maneira muito mais suportada.