sql >> Database >  >> NoSQL >> MongoDB

Mongodb - Map-Reduce - Volledige gegevens worden niet geretourneerd

Aangezien MongoDB de reduce-functie vele malen kan aanroepen, moet u ervoor zorgen dat Functie Idempotentie . Een kleine wijziging aan je reduceerfunctie lost het probleem op:

db.system.js.save({

    _id: "reduce1",

    value: function (key, values) {
        var reducedValue = [];
        for (var i = 0; i < values.length; i++) {
            for(var j = 0; j < values[i].data.length; j++) {
                reducedValue.push({
                    "_id": values[i].data[j]._id,
                    "creation_time": values[i].data[j].creation_time
                });   
            }

        }
        return {
            data: reducedValue
        };
    }
});

Merk op dat nu de values[i].data array wordt ook doorlopen, omdat de terugkeer van andere reduce1 aanroepen zijn in de values reeks .




  1. Gelokaliseerde gegevens opvragen in MongoDB

  2. Kan eigenschap 'castForQuery' van undefined niet lezen bij castArrayFilters in Node.js

  3. Inleiding tot Redis-gegevensstructuren:sets

  4. MongoDB - Logische OF bij het zoeken naar woorden en zinnen met behulp van volledige tekst zoeken