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

Mongodb - Map-Reduce - Fuldstændige data returneres ikke

Da MongoDB kunne kalde reduceringsfunktionen mange gange, skal du sikre dig Function Idempotence . En lille ændring af din reduktionsfunktion løser problemet:

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

Bemærk, at nu values[i].data array krydses også, fordi returneringen af ​​andre reduce1 opkald er i values matrix .




  1. Få data mellem to datoer mongo

  2. Løsning af MongoDB DBRef-array ved hjælp af Mongo Native Query og arbejde på de løste dokumenter

  3. MongoDB-status mislykkedes efter redigering af mongo.conf (code-exited, status=2)

  4. MongoDB $ og operatørforespørgsel i PHP