javascript - 如何从 mongoDB 获取特定日期之间的数据(日期在我们的文档中存储为createdOn)?

标签 javascript node.js mongodb

这是我的查询 -

  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 格式的日期之间的数据。

这是文档的架构:enter image description here

最佳答案

您可以使用$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')}}

关于javascript - 如何从 mongoDB 获取特定日期之间的数据(日期在我们的文档中存储为createdOn)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53077951/

相关文章:

javascript - 如何将时间戳转换为可读的日期/时间?

node.js - AWS Lambda 复制对象 "Process exited before completing request"

javascript - Express 服务器和服务动态变化的值

javascript - Mongoose 更改架构字段类型

mongodb - 写入 mongo 数据库副本集 : take care of primary when writing?

javascript - 没有 WebSockets,NodeJS 如何处理持久连接?

javascript - 如何隐藏 'script' HTML 标签?

javascript - HTML - 来自一个 div 的子元素覆盖另一个 div

node.js - Koa-router 忽略 Mongoose 的 async/await 并始终返回 404

MongoDB 分片未最佳分布