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