2017-01-03 1 views
1

Meine Sammlungen mit DATE-Schlüssel, das ist in String-Format, so, wie Abfrage für das Finden geben Datum oder ich kann finden, wie viele Daten gibt es gibt: Ich habe ein Experiment versucht, aber es funktioniert nicht;Fetch String Datum zwischen zwei Daten in MONGODB?

db.colName.find({"date": {$gte: "Tue Aug 30 16:43:22 IST 2016",$lt: "Tue Aug 30 16:43:22 IST 2016"}}) 

Bitte schlagen Sie vor, ist es in MongoDB möglich oder wie kann ich mein Wunschergebnis finden?

+2

Um die besten Ergebnisse zu erzielen, konvertieren Sie die Zeichenfolgendarstellung des Datums in einen korrekten Datumstyp wie in dieser Frage http: // stack overflow.com/questions/10942931/converting-string-to-date-in-mongodb – chridam

Antwort

0

Sie müssen alle Daten abrufen, alle Daten im richtigen Format analysieren und dann filtern.

Wenn Sie Javascript Ergebnis verwenden, außer in einigen variabel und dies zu tun ...

result.map(function(singleResult) { 
    Date.parse(singleResult.date) 
    return singleResult 
}); 
+0

Wie kann ich dieses Format ändern? –

-1

Sie es mit isodate tun können

db.colName.find({"date": {$gte: ISODate("2016-08-30 16:43:22"),$lt: ISODate("2016-08-30 16:43:22")}}) 

Same kann mit JavaScript Date auch

erfolgen
db.colName.find({"date": {$gte: new Date("2016-08-30 16:43:22"),$lt: new Date("2016-08-30 16:43:22")}}) 
+0

kann er nicht, da offensichtlich seine Daten als Strings gespeichert sind. –

+0

das ist nicht die richtige weise zu tun ... –

+0

Oh mein Schlechter, ich dachte, Daten sind im Datumsformat gespeichert. dann gibt es keine Möglichkeit, dies mit der Abfrage zu tun, vielleicht müssen Sie ein Skript ausführen, um die Zeichenfolge in ein Datumsformat für alle Dokumente zu ändern. –

Verwandte Themen