【问题标题】:Compare date and time in Mongo在 Mongo 中比较日期和时间
【发布时间】:2019-12-09 21:17:29
【问题描述】:

我正在编写一个 mongo 查询来根据当前时间显示记录。但是,当我尝试查询日期和时间时,查询返回 0 条记录。以下是查询:

let now =  momenttz.tz(moment(),tz).toDate();
 tmpl.listSelectorFilter('scheduledVisits', {
    $gte: now,
    $lte: moment.utc(today, 'MM/DD/YYYY').endOf('week').toDate()
  });

注意:如果我将时间设置为零小时,它会起作用。

如何更改此查询以使其正常工作?任何帮助表示赞赏。

【问题讨论】:

    标签: javascript mongodb meteor filter


    【解决方案1】:

    您查询的数据是否有要比较的时间戳或 dateTime 对象?本质上,您不会将记录与任何时间进行比较,因此 mongo 无法知道要过滤的内容。

    我建议您改为执行查找之类的操作,并使用适当的日期字段与记录中的日期进行比较:

    示例:

    db.collection.find({
    { $and: [ { data.date: { $gte: now } }, { data.date: { $lte: endOfWeek } } ] }
    })
    

    还请记住,在 mongo 领域中,您不能像使用 moment 那样使用函数,因此我输入“endOfWeek”,这将是您设置的类似于现在的变量:

    let now =  momenttz.tz(moment(),tz).toDate();
    let endOfWeek = moment.utc(today, 'MM/DD/YYYY').endOf('week').toDate()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多