sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb - Map-Reduce - Kompletní data nejsou vrácena

Protože MongoDB mohl mnohokrát volat funkci snížení, musíte zajistit Funkce Idempotence . Malá úprava vaší funkce snížení problém vyřeší:

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

Všimněte si, že nyní values[i].data pole je také procházeno, protože se vrací další reduce1 volání jsou v hodnotách values pole .




  1. Nelze se připojit k Mongodb pod v Kubernetes (připojení odmítnuto)

  2. Jak ukládat relace v MongoDB z NodeJS?

  3. Jak změnit všechny prvky pole v dokumentu mongodb na určitou hodnotu?

  4. Nakonfigurujte velikost GridFS Chunksize v MongoDB