Этот мой запрос -
var Query = Offer
.where('isDeleted').equals(false)
.populate('country')
.populate('state')
.populate('city')
.populate('store')
.populate("createdBy")
.populate("main_cat")
.populate("grab_by")
.populate("merchant_id")
.sort('store_name');
if (typeof querydata.country != 'undefined' && querydata.country !== '') {
Query.where('country').in(querydata.country)
}
if (querydata.state.length > 0) {
querydata.state = querydata.state.split(",");
Query.where('state').in(querydata.state);
}
if (querydata.city.length > 0) {
querydata.city = querydata.city.split(",");
Query.where('city').in(querydata.city);
}
//here i am trying to get data from start to end date
if ((req.query.start_date !== '' && typeof req.query.start_date !== 'undefined') && (req.query.end_date !== '' && typeof req.query.end_date !== 'undefined')) {
var startdate = new Date(req.query.start_date);
var enddate = new Date(req.query.end_date);
//(startdate);
enddate.setDate(enddate.getDate() + 1);
Query.where(('createdOn').split('T')[0]).gte(startdate).lte(enddate);
}
В последнем условии if else я пытаюсь попасть между датой начала и датой окончания. Пожалуйста, подскажите, как мне написать свой запрос для того же. Должен ли я использовать для этого же momentJS. Основная цель этого кода - получить данные между датами, которые будут загружены пользователем в формате CSV.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать операторы $gte и $lte для фильтрации данных по диапазону дат.
В вашем случае для поиска в коллекции Offer запрос будет:
db.Offer.find({createdOn: {$gte: ISODate('START_DATE'),$lte: ISODate('END_DATE')}})
Поскольку вы используете MongoDB Compass, просто введите следующее в filter в поле фильтра: (на вкладке схемы)
{createdOn: {$gte: ISODate('START_DATE'),$lte: ISODate('END_DATE')}}
зависит от используемого вами драйвера db. Я добавил команду Mongo Shell, а также команду фильтра Compass.
как мне написать его в javascript (NodeJS) как запрос (например, этот Query.where ('city'). in (querydata.city);)? Я хочу передать его в одном уже сделанном запросе, а не делать еще один.
как мне написать это в javascript?