【发布时间】:2016-05-12 23:26:30
【问题描述】:
我目前正在尝试根据两个参数过滤流星集合:currentDate 和来自集合 dateEventEnds。
这是我当前的发布代码:
Meteor.publish('recursos', function() {
let today = Date.now();
return Recursos.find({ 'recursos.fechaEnd': { $gt: today }});
});
实际上什么也没做。我认为这是由于:
- Date.now() 以毫秒为单位生成日期。例如:1463058648464
- 虽然 recursos.fechaEnd 的存储方式如下:“2016-04-30T00:00:00.000Z”
也尝试过使用:new Date(),但仍然没有任何反应:
Meteor.publish('recursos', function() {
let today = new Date();
return Recursos.find({ 'recursos.fechaEnd': { $gt: today }});
});
- 新的 Date() 结果如下:Thu May 12 2016 09:50:16 GMT-0400 (Eastern Daylight Time)
所以看起来问题围绕着日期的呈现方式。我怎样才能将它们更改为都使用相同的日期格式?是通过将它们更改为毫秒吗?
我需要进行过滤的模板同时包含集合和 EasySearchIndex,如下所示:
RecursosIndex = new EasySearch.Index({
collection: Recursos,
fields: ['clase', 'direccion.city'],
engine: new EasySearch.MongoDB({
sort: () => ['fechaStart']
})
});
过滤应该在这里进行吗?
谢谢
【问题讨论】:
-
只是猜测:
let today = new Date();? -
也试过了,使用 Date.now() 来生成当前日期。
-
@Julien 看起来问题与日期值的存储/表示方式有关
-
new Date() 也产生当前日期,并且日期比较应该与 Date 对象一起使用。另外,另一件事,您正在寻找具有未来日期(比现在晚)的对象,这是您想要的吗?
-
@julien 我正在使用 EasySearch,并注意到模板同时订阅了集合和 collectionIndex。我已修改我的问题以包含 EasySearch 索引。也许这里需要做hte过滤器?
标签: date meteor collections