MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb - Map-Reduce - Пълните данни не се връщат

Тъй като MongoDB може да извика функция за намаляване много пъти, трябва да сте сигурни, че Функция Idempotence . Малка модификация на вашата функция за намаляване решава проблема:

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

Имайте предвид, че сега values[i].data масив също се преминава, защото връщането на други reduce1 извикванията са в стойностите на values масив .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране с AddToSet без актуализиране на нулева стойност с MongoDB C#

  2. Как да изберете едно поле в MongoDB с помощта на Pymongo?

  3. $unset за множество полета в mongodb

  4. Едновременна актуализация на елементи от масив, които са вградени документи в MongoDB

  5. в nodejs, как да спрете FOR цикъл, докато извикването на mongodb не се върне