基于日期的流星查询

时间:2014-04-30 10:26:44

标签: javascript json mongodb meteor

我搜索高低,但我唯一能找到的是如何根据日期范围进行搜索(例如从日期A到日期B)如何查找特定日期?

我这样做了,但不知怎的,这是不对的:

    var diff = parseInt(searchKey);
    var delta = diff * 24 * 60 * 60 * 1000;

    if(diff!=NaN){
      var targetDate = new Date(Date.now() + delta);              
      //alert(targetDate.toString()); 
      selector['date'] = targetDate;
      Session.set('selector', selector);
      Session.set('isFiltered',true);         
    }

targetDate是有效日期,searchKey将作为剩余天数返回(即7天或-7,如果日期已过)。然后selector将作为参数传递给find()以搜索集合。

太糟糕了。它没有按预期工作。在执行像查询选择器{ date: '2014-04-01 00:00:00:00}之类的操作之前,是否必须解析或格式化javascript Date对象?我不能简单地传递JS对象,而且框​​架足够聪明,可以比较它吗?

2 个答案:

答案 0 :(得分:1)

日期对象包含日期和时间值。要查找日期等于给定日期的项目,您需要在所述日期的开始和结束之间搜索项目。寻找具有相同日期的项目只会显示时间完全相等的那些项目,最多可达毫秒。

答案 1 :(得分:1)

要使其发挥作用,您应该使用momentmrt add moment

在MongoDB中创建文档时,将ate指定为moment(moment().format("DD.MM.YYYY"), "DD.MM.YYYY").toDate(),这将在午夜返回当前日期

当您查询时,您可以使用相同的格式搜索特定日期。使用moment的优秀API来计算正确的日期。将来7天将是moment(moment().format("DD.MM.YYYY"), "DD.MM.YYYY").add('days', 7)

这有点麻烦,但查询会比搜索午夜到午夜更快。

希望有所帮助