MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Agrégation MongoDB avec DBRef

Vous ne pouvez pas utiliser DBRef valeurs avec le cadre d'agrégation. Au lieu de cela, vous devez utiliser le traitement JavasScript de mapReduce afin d'accéder à la dénomination de propriété qu'ils utilisent :

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

Vous ne devriez vraiment pas utiliser DBRef du tout. L'utilisation est fondamentalement obsolète maintenant et si vous sentez que vous avez besoin d'un référencement externe, vous devriez le "référencer manuellement" avec votre propre code ou implémenté par une autre bibliothèque, avec laquelle vous pouvez le faire d'une manière beaucoup plus prise en charge.