Я пытаюсь отфильтровать даты в диапазоне, но я так расстроился, что сейчас просто пытаюсь запросить даты, которые меньше текущего времени.
У меня есть этот запрос:
q = { 'recorded_timestamp': { '$lt': '2018-09-12T21:02:05.187Z' } };
Я также пробовал следующие запросы, но ни один из них не работает:
q2 = { 'recorded_timestamp': { '$lt': new Date() } };
q3 = { 'recorded_timestamp': { '$lt': new Date(Date.now()) } };
q4 = { 'recorded_timestamp': { '$lt': new Date().toISOString() } };
Когда я пытаюсь сделать MyModel.find(q)
, я ничего не получаю обратно. Однако, если я скопирую этот запрос точно в оболочку MongoDB, я получу ожидаемые результаты.
const promise = new Promise(resolve => {
const results = MyModel.find(q)
resolve(results);
});
return promise.then(results => {
return results; // results = [], but they shouldn't
});
Что здесь происходит?
- Mongoose версия: 4.13.14
- Версия MongoDB: 3.4.17
- Версия узла: 8.11.2
Вот соответствующая выдержка из модели:
const MySchema = new Schema({
some_ID: {
type: String,
required: true
},
recorded_timestamp: {
type: Date,
required: true
}
}, { timestamps: true });
module.exports = mongoose.model('MyModel', MySchema);
Вот фрагмент примера данных, которые вставляются в коллекцию.
{ "some_ID": "16499", "recorded_timestamp": "2007-03- 13T07:39:52.959057" }
{ "some_ID": "17158", "recorded_timestamp": "2007-09- 12T15:31:18.244142" }