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

Nhận số lượng Trường trong mỗi tài liệu thông qua truy vấn bằng trình điều khiển java MongoDB

Từ mã java của bạn, tôi đã đọc được

như

project only type[1..120] fields and number of such fields in the document

Với giả định này, bạn có thể map-Reduce nó như sau:

db.testcol.mapReduce(
function(){
    value = {count:0};
    for (i = 1; i <= 120; i++) {
        key = "type" + i
        if (this.hasOwnProperty(key)) {
            value[key] = this[key];
            value.count++
       }
    }
    if (value.count > 0) {
        emit(this._id, value);
    }
},
function(){
    //nothing to reduce
},
{
    out:{inline:true}
});

out:{inline:true} hoạt động cho các tập dữ liệu nhỏ, khi kết quả phù hợp với giới hạn 16 MB . Đối với các câu trả lời lớn hơn, bạn cần output vào một bộ sưu tập mà bạn có thể truy vấn và lặp lại như bình thường.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:di chuyển, cập nhật hoặc chèn lược đồ

  2. Truy vấn Mongo sử dụng mongoid trong ứng dụng rails gây ra lỗi hết thời gian chờ con trỏ

  3. Mongoose / node.js cách tìm, điền, thực hiện công việc, 'depopulate' và cập nhật

  4. Tìm và thay thế các chuỗi trong tài liệu một cách hiệu quả

  5. Quan hệ Mongoid và ActiveRecord:phương thức không xác định `quote_table_name '