Ich habe ein MongoDB-Modell, das ein Date-Feld enthält, dessen Typ als Date.now definiert ist. Jedes Datum wird in das ISO-Datumsformat konvertiert. Innerhalb des Modells wird das Datum wie folgt definiert:Speichern und Abrufen von Datum in TT MMM JJJJ-Format in MongoDB-Modell
xDate : {
type: Date.now,
required: true
}
ich das aktuelle Datum passieren, wie:
var d = new Date();
var temp = d.toISOString();
var subStr = temp.substr(10,temp.length - 1);
var curDate = temp.replace(subStr, "T00:00:00.000Z");
console.log(curDate);
jedoch das Datum als ISO-String innerhalb des MongoDB-Schemas gespeichert ist. Ich versuche, es zu Abfrage Mongoose mit den folgenden Kriterien:
X.
find({
xDate: curDate
})
.exec(function(err, doc) {
var response = {
status : 200,
message : doc
};
if (err) {
console.log('Error');
response.status = 500;
response.message = err;
} else if (!doc) {
console.log("Documents against the date not found in database" ,curDate);
response.status = 404;
response.message = {
"message" : "Documents not found for " + curDate
};
}
res
.status(response.status)
.json(response.message);
});
Ich halte eine leere json Array trotz der Daten immer dort zu sein. In der Tabelle wird das xDate als YYYY-MM-DD-Format gespeichert.
Was genau meinen Sie mit „das Datum Methoden Klasse ändern“? Sie setzen auch ein zusätzliches r in '$ lt: curDate'. –
Ändern Sie das Datum mit dem nativen Date-Objekt (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) und verwenden Sie die Methoden des Date-Objekts. Verwenden Sie für das Ändern des Datums keine Methoden zum Ersetzen von Zeichenfolgen. –