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

Mongodb:mảng tổng hợp các số nguyên cho mỗi vị trí mảng

Tôi nghĩ rằng bạn sẽ cần giảm bản đồ cho điều này, để viết một hàm có thể truy cập các vị trí cụ thể trong mảng. Bạn có thể thử một cái gì đó như thế này:

Chức năng ánh xạ:

var M = function() { 
    emit( this.agent, { score : this.score, qv : this.qv } )
}

Giảm chức năng:

var R = function(key, values) {
    var result = { score : [0, 0, 0], qv : [0, 0, 0, 0, 0] };
    values.forEach( function(value) {
        for ( var i = 0; i < value.score.length; i ++ ) {
            result.score[i] += parseInt(value.score[i]);
        }
        for ( var i = 0; i < value.qv.length; i ++ ) {
            result.qv[i] += parseInt(value.qv[i]);
        }
    });
    return result;     
}

Sau đó, bạn có thể chạy hàm mapReduce sau trên bộ sưu tập của mình:

db.foo.mapReduce( M, R, { out : "resultCollection" } )

Và điều đó sẽ mang lại cho bạn kết quả mong muốn sau đây!

{
"_id" : "006",
"value" : {
    "score" : [2, 1, 0],
    "qv" : [ 3, 0, 3, 0, 2 ]
}
}
{
"_id" : "007",
"value" : {
    "score" : [ 1, 0, 0],
    "qv" : [ 1, 0, 1, 0, 0]
}

}




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách sử dụng GridFS để lưu trữ hình ảnh bằng Node.js và Mongoose

  2. Chuyển đổi kiểu dữ liệu trong MongoDB

  3. Thiết lập docker Mongo bị hỏng sau khi khởi động lại (bộ điều khiển unifi trên raspberry pi)

  4. Cập nhật nhiều tài liệu MongoDB trong NodeJS dường như không hoạt động

  5. Tải dữ liệu ban đầu khi khởi động ứng dụng với Spring Data MongoDB