Ich möchte die Posts
, die innerhalb von 24 Stunden in Segel js erstellt werden. Und ich verwende mongodb
Datenbank. Wie bekomme ich all die Posts, die in den letzten 24 Stunden erstellt wurden?erhalten Datensätze innerhalb von 24 Stunden in Segel erstellt js
2
A
Antwort
2
Sie können einen Datumsbereich, der aus 24 Stunden besteht, auf folgende Weise erstellen.
die momentjs Bibliothek verwenden, können Sie ein Datum mit den Erweiterungsmethoden erstellen subtract()
und werfen es zu einem JS Datum mit der toDate()
Methode:
var start = moment().subtract(24, 'hours').toDate();
oder mit Plain-Vanilla-Date-Objekten erstellen der Datumsbereich als:
var now = new Date(),
start = new Date(now.getTime() - (24 * 60 * 60 * 1000));
Verwenden Sie die where()
Methode die Abfrage das Posts
Modell unter Verwendung der oben Datumsbereich Abfrage, verwendet das Feld gegeben, die den Zeitstempel hält date
genannt wird:
Posts.find()
.where({ "date" : { ">": start } })
.exec(function (err, posts) {
if (err) throw err;
return res.json(posts);
});
'' '„<“: end''' ist nicht erforderlich, weil es werden in Zukunft keine Datensätze erstellt. Es würde Sinn machen, wenn Sie Aufzeichnungen von -48 bis -24 Stunden wünschen. Aber nicht von -24 bis 0. – Bonanza
@Bonanza Du hast recht, ich bin davon ausgegangen, dass es Posts geben würde, die für ein gegebenes zukünftiges Datum automatisch veröffentlicht werden: P Aber dann erwähnte das OP das nie wieder. – chridam
Ich habe nicht über automatische Veröffentlichung nachgedacht. :) – Bonanza