MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongodb - Map-Reduce - Dữ liệu hoàn chỉnh không được trả lại

Vì MongoDB có thể gọi hàm giảm nhiều lần, bạn phải đảm bảo Hàm Idempotence . Một chút sửa đổi trên chức năng giảm của bạn sẽ giải quyết được vấn đề:

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

Lưu ý rằng bây giờ các giá trị values[i].data mảng cũng được duyệt qua, do trả về của reduce1 khác lệnh gọi nằm trong các giá trị values mảng .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Geonear sắp xếp theo khoảng cách và thời gian

  2. Giải thích khung tổng hợp

  3. Cách sử dụng hàm tổng hợp mongo db-query

  4. MongoDB $ chuyển đổi

  5. Mối quan hệ nhiều-nhiều trong CouchDB hoặc MongoDB