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

Tổng hợp kết quả MongoDB theo ngày ObjectId

Cập nhật:Hiện có một cách tích hợp để thực hiện việc này, hãy xem https://stackoverflow.com/a / 51766657/295687

Không có cách nào để thực hiện những gì bạn đang yêu cầu với khung tổng hợp mongodb, bởi vì không có toán tử tổng hợp nào có thể biến ObjectId thành một cái gì đó giống như ngày tháng (có một JIRAticket , Tuy nhiên). Tuy nhiên, bạn có thể đạt được những gì bạn muốn bằng cách sử dụng map-Reduce:

// map function
function domap() {
    // turn ObjectId --> ISODate
    var date = this._id.getTimestamp();
    // format the date however you want
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDate();

    // yields date string as key, entire document as value
    emit(year+"-"+month+"-"+day, this);
}

// reduce function
function doreduce(datestring, docs) {
    return {"date":datestring, "docs":docs};
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để chỉ định nhóm GridFS?

  2. Cách tốt nhất để trình bày cơ sở dữ liệu đa ngôn ngữ trên mongodb

  3. Bản cập nhật Mongoose 'không thể sử dụng phần (..) để duyệt qua phần tử

  4. MapReduce với MongoDB thực sự rất chậm (30 giờ so với 20 phút trong MySQL cho cơ sở dữ liệu tương đương)

  5. $ tra cứu nhiều cấp độ mà không có $ unwind?