2016-12-10 3 views
1

Ich habe das folgende Stück Code, um Ergebnisse aus einer Mongo Collection zu erhalten.Meteor.js/MongoDB zwischen Daten Abfrage keine Daten zurückgeben

var currentDate = moment().toISOString(); 
// RETURNING: 2016-12-10T20:36:04.494Z 

var futureDate = moment().add(10, "days").toISOString(); 
// RETURNING: 2016-12-20T20:36:04.495Z 

return agenda = Agendas.find({ 
    "agendaDate": { '$gte': currentDate, '$lte': futureDate } 
}); 

Und das Datum wird in MongoDB Collection wie unten gespeichert;

{ 
"_id" : ObjectId("584877e56466dd236cd95f15"), 
"agendaDate" : ISODate("2016-12-12T17:28:25.000+0000"), 
"agendaTime" : "20:59", 
"agendaEvent" : "Test event" 
} 

Allerdings bekomme ich keine Ergebnisse als alle zurück. Ich habe 3 Testdokumente eingerichtet, 2 im Bereich, 1 außerhalb.

Kann mir jemand erklären, was ich falsch mache, und helfen, den Code zu korrigieren?

Antwort

0

Sie müssen Daten mit tatsächlichen Datumsobjekten vergleichen, keine Zeichenfolgen, die sie darstellen.

Das heißt, Sie müssen das Datum von Ihren moment Objekten mit der toDate() Methode erhalten.

var futureDate = moment().add(10, "days").toDate(); 
+0

Works. Danke MasterAM. Als Antwort ausgewählt. – Sam

0

Naja, eigentlich moment.toISOString() gibt einen String, so dass Sie es nicht mit Datum Objekt in Ihrer mongodb Abfrage verwenden können, zu vergleichen. Sie sollten in Erwägung ziehen, ein Datumsobjekt dafür zu erstellen. Regs, Yann