sql >> Database teknologi >  >> NoSQL >> MongoDB

Saml MongoDB-resultater efter ObjectId-dato

Opdatering:Der er en indbygget måde at gøre dette på nu, se https://stackoverflow.com/a /51766657/295687

Der er ingen måde at opnå det, du beder om med mongodb's aggregeringsramme, fordi der ikke er nogen aggregeringsoperator, der kan gøre ObjectId'er til noget dato-lignende (der er en JIRAticket , selvom). Du bør dog være i stand til at opnå det, du ønsker ved at bruge 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. Sådan laver du en brugerdefineret forespørgsel ved hjælp af django-nonrel og mongodb

  2. Duplikere PostgreSQL's vinduesfunktioner som lag, lead, over

  3. Lagring, organisering og forespørgsel på produkter, muligheder/tags og kategorier

  4. mongodb tilføje tæller til hvert hentede dokument