sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Aggregation med DBRef

Du kan inte använda DBRef värden med aggregeringsramverket. Istället måste du använda JavasScript-behandling av mapReduce för att komma åt egenskapsnamnet som de använder:

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 borde verkligen inte använda DBRef alls. Användningen är i princip utfasad nu och om du känner att du behöver lite extern referens så bör du "manuellt referera" detta med din egen kod eller implementerat av något annat bibliotek, med vilket du kan göra det på ett mycket mer stödd sätt.



  1. MongoDB - Fråga om det sista elementet i en array?

  2. Hur befolkar man ett till många förhållande i mangust med föräldrareflektion?

  3. Mongoose och flera databas i ett enda node.js-projekt

  4. Hitta min- och maxvärden från arrayen i mongodb