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

Lập bản đồ / Thu nhỏ và Sắp xếp Tài liệu Lồng nhau

MapReduce là một hoạt động lặp lại trên một loạt các tài liệu và thực hiện một hoạt động. Tôi không hoàn toàn chắc chắn đó chính xác là những gì bạn muốn, nhưng có thể bạn đang đăng một dạng đơn giản hơn về vấn đề thực sự của mình. Trong mọi trường hợp, mã sau hoạt động bằng cách phát ra 3 lần cho một tài liệu của bạn, sử dụng _id của tài liệu làm chìa khóa cho chức năng rút gọn.

doc = {_id : 16, days : { 1 : 123, 2 : 129, 3 : 140, 4 : 56, 5 : 57, 6 : 69, 7 : 80 }};
db.so.insert(doc);

map = function() {
  emit(this._id, this.days["1"]);
  emit(this._id, this.days["3"]); 
  emit(this._id, this.days["7"]); 
}

reduce = function (k, vals) {
  var sum = 0;
  vals.forEach(function (v) {sum += v;});
  return sum;
}

res = db.so.mapReduce(map, reduce, {out : {inline : 1}});
res.find();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nút không kết nối với Mongo nhiều lần

  2. Tìm kiếm toàn văn trong MongoDB

  3. tự động tăng bằng cách sử dụng loopback.js và MongoDB

  4. Làm cách nào để kiểm tra xem một tài liệu đã được chèn hoặc cập nhật khi sử dụng findOneAndUpdate?

  5. Cách tính chênh lệch dấu thời gian trong mongodb (theo giờ)?