Запрос на mongodb объекты, соответствующие диапазону дат - PullRequest
0 голосов
/ 10 октября 2018

У меня есть коллекция со следующим примером документа

{
    "_id" : ObjectId("5bbb299f06229dddbaab553b"),
    "phone" : "+38 (031) 231-23-21",
    "date_call" : "2018-10-08",
    "adress_delivery" : "1",
    "quantity_concrete" : "1",
    "state" : "200",
    "comments" : "1",
    "is_order" : "n",
    "date_delivery" : "",
    "quantity_orders" : "",
    "summ_order" : "",
    "profit" : "",
    "id" : "0"
}

Все, что мне нужно сделать, это отфильтровать данные для выбранного диапазона дат, например, между 2018-01-08 и 2018-10-10:

  • количество документов

  • количество документов, соответствующих "is_order": "y"

Подскажите, пожалуйста, как лучше всего фильтровать данные?

  • Полностью загрузить все данные по ответу от AJAX и отфильтровать ужеВ полном методе?
  • Полностью отфильтровать данные на сервере?Если на сервере - подскажите, можно ли это сделать за один запрос?Или стоит разделить запрос, создать массив и отправить ответ?

1 Ответ

0 голосов
/ 10 октября 2018

(1) количество документов в период с 2018-01-08 по 2018-10-10

Model.find({
      "date_call":{
                  "$lte":"2018-10-10",
                  "$gte":"2018-01-08"
                  }
     },function(err,data){
     if(err){ return res.status(500).json({status:'error',errors:err});}
     if(!err && data){ return res.status(200).json({stauts:'success',data:data});}
});

(2) количество документов, соответствующих «is_order»":" y "

Model.find({
          "is_order": "y",
          "date_call":{
                      "$lte":"2018-10-10",
                      "$gte":"2018-01-08"
                      }
         },function(err,data){
         if(err){ return res.status(500).json({status:'error',errors:err});}
         if(!err && data){ return res.status(200).json({stauts:'success',data:data});}
    });
...