#node.js #express #date #mongoose
Вопрос:
Я использую Nodejs, Express и мангуста, что я пытаюсь сделать, это следующее.
У меня есть этот объект с форматом:
{
_id: 60c824cfeaaa84a7b4e16dbf,
ActionID: 5f2715c9569c9700523bbcc3,
ActionType: 'PushToBrand',
EndDate: 2021-06-27T00:54:00.000Z,
StartDate: 2021-06-15T00:54:00.000Z,
ImageName: 'h21fTvVniZzqVAkY9oPJDj.jpg',
ImagePlace: 1
},
{
_id: 60c824cfeaaa84a7b4e16sxf,
ActionID: 5f2715c9569c9700523bbcc3,
ActionType: 'PushToBrand',
EndDate: 2021-05-27T00:54:00.000Z,
StartDate: 2021-05-15T00:54:00.000Z,
ImageName: 'h21fTvVniZzqVAkY9oPJDj.jpg',
ImagePlace: 2
}
Итак, как только параметр TimsStamp получен, мне нужно отфильтровать объект, который действительно содержит метку времени в соответствующем диапазоне даты начала и даты окончания.
Может быть, что-то вроде этого:
BolBanners.find({StartDate: Is equal or greater than Date.now() amp;amp; EndDate:_IS equal or minor than Date.now()});
***ОБНОВЛЕНИЕ
Изображение DB compas введите описание изображения здесь
Комментарии:
1. вы можете использовать
$lte
и$gte
операторы, и использоватьnew Date()
функцию.2. Я пробовал это
const validImages = BolBanners.find({StartDate: {$lte: Date.now()}, EndDate: {$gte: Date.now()}});
, и это не сработало.3. смотрите рабочую игровую площадку . использовать
new Date()
. и убедитесь, что поля Дата начала и дата окончания имеют тип даты, а не строку.4. Спасибо! Я предполагаю, что получаю клоры, но, несмотря на то, что дата начала и дата окончания имеют формат даты, запрос не выполняется должным образом @turvishal
5. @turivishal спасибо за сотрудничество, к сожалению, я кое — что упускаю. Это мой коллекционный документ [ i.stack.imgur.com/PajH4.jpg] есть еще какие-нибудь предложения??
Ответ №1:
Хорошо, решение, предоставленное @turivishal, было правильным. Вина была моя, из-за чего-то, что я игнорировал, и я не опубликовал это, так как не видел полной картины.
Я спрашивал вот так:
var validImages;
try {
validImages = BolBanners.find({
StartDate: {
$lte: new Date()
},
EndDate: {
$gte: new Date()
}
});
console.log(validImages)
res.send(validImages);
} catch (e) {
console.log('error')
res.json({msg: 'no response'})
}});
Но мне не хватало знаменитого ожидания, так как это асинхронная функция при вызове вашей базы данных.
Спасибо за руководство.