Actualización:hay una forma integrada de hacer esto ahora, consulte https://stackoverflow.com/a /51766657/295687
No hay forma de lograr lo que está pidiendo con el marco de agregación de mongodb, porque no hay un operador de agregación que pueda convertir ObjectId en algo parecido a una fecha (hay un JIRAticket , aunque). Sin embargo, debería poder lograr lo que desea usando 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};
}