sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Aggregation med DBRef

Du kan ikke bruge DBRef værdier med aggregeringsrammen. I stedet skal du bruge JavasScript-behandling af mapReduce for at få adgang til egenskabsnavnet, som de bruger:

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 burde virkelig ikke bruge DBRef overhovedet. Brugen er dybest set forældet nu, og hvis du føler, du har brug for ekstern reference, bør du "manuelt referere" dette med din egen kode eller implementeret af et andet bibliotek, som du kan gøre det på en meget mere understøttet måde.



  1. Go og MongoDB-forbindelse virker ikke med paniklog ingen tilgængelig server

  2. MongoDB prik (.) i nøglenavn

  3. Dokumentfeltnavne kan ikke starte med '$' (dårlig nøgle:'$set')

  4. Er data returneret fra Mongoose uforanderlige?