2015-03-29 7 views
14

Ich habe diese Abfrage Ergebnisse im Monat zu erhalten. Aber ich wollte die Ergebnisse von heute bekommen.Mongodb find erstellte Ergebnisse nach Datum heute

var start = new Date(2010, 11, 1); 
var end = new Date(2010, 11, 30); 

db.posts.find({created_on: {$gte: start, $lt: end}}); 

Was ist der beste Weg, dies zu tun?

+0

'neues Datum (Jahr, Monat [, Tag [, Stunde [, Minuten [, Sekunden [, Millisekunden]]]]]);' https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date – Prinzhorn

Antwort

36

Objekt Ihres Startdatums sollte die aktuelle Datum Zeit Stunden bei 00:00:00.000 (Millisekunden Genauigkeit) und die Stunden für die heutige Datum 23:59:59.999 halten:

var start = new Date(); 
start.setHours(0,0,0,0); 

var end = new Date(); 
end.setHours(23,59,59,999); 

Dann passieren die geänderte Datum Objekte wie gewohnt in Ihrer MongoDB Abfrage Betreiber:

db.posts.find({created_on: {$gte: start, $lt: end}}); 

Wenn Sie die momentjs Bibliothek verwenden, kann dies durch die Verwendung der startOf() und endOf() Methoden auf das Moment der Strom d getan werden aß Objekt, die Zeichenfolge 'day' als Argumente übergeben:

var start = moment().startOf('day'); // set to 12:00 am today 
var end = moment().endOf('day'); // set to 23:59 pm today