sql >> Databasteknik >  >> NoSQL >> MongoDB

Aggregera MongoDB-resultat efter ObjectId-datum

Uppdatering:Det finns ett inbyggt sätt att göra detta nu, se https://stackoverflow.com/a /51766657/295687

Det finns inget sätt att uppnå det du begär med mongodbs aggregeringsramverk, eftersom det inte finns någon aggregeringsoperator som kan förvandla ObjectId till något datumliknande (det finns en JIRAticket , fastän). Du bör dock kunna åstadkomma vad du vill med 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. Är redis på Heroku möjligt utan ett tillägg?

  2. MongoDB Composite Key

  3. Spring Data MongoDB:BigInteger till ObjectId-konvertering

  4. Hur man installerar Apache CouchDB 2.3.0 i Linux