sql >> Base de Datos >  >> NoSQL >> MongoDB

Agregación de MongoDB con DBRef

No puede usar DBRef valores con el marco de agregación. En su lugar, debe usar el procesamiento JavasScript de mapReduce para acceder a los nombres de propiedad que utilizan:

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 }
    }
)

Realmente no deberías estar usando DBRef en absoluto. El uso está básicamente obsoleto ahora y si cree que necesita alguna referencia externa, entonces debería "hacer referencia manualmente" a esto con su propio código o implementado por alguna otra biblioteca, con la que puede hacerlo de una manera mucho más compatible.