MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb - Mapa-Reduce - Pełne dane nie są zwracane

Ponieważ MongoDB może wielokrotnie wywoływać funkcję Reduce, musisz upewnić się, że Function Idempotence . Niewielka modyfikacja funkcji zmniejszania rozwiązuje problem:

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

Zauważ, że teraz values[i].data tablica jest również przemierzana, ponieważ zwracany jest inny reduce1 wywołania są w values tablica .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 'process.nextTick(function() { throw err; })' — Undefined nie jest funkcją (mongodb/mongoose)

  2. Repozytorium Spring automatycznie rzuca encje z różnymi typami klas

  3. Zaktualizuj pole wewnątrz listy za pomocą sterownika MongoDB C#

  4. Dlaczego różne plany zapytań MongoDB pokazują różne wartości nReturned?

  5. Jak pobrać dane z kolekcji MongoDB w C# za pomocą wyrażenia regularnego?