通过日期范围或文字过滤器过滤Meteor.js中的集合

时间:2014-02-25 23:46:22

标签: javascript meteor

我在Meteor.js中有一个包含时间戳的属性的集合。例如:

Posts.insert({
    category: 'type1',
    text: 'hello world',
    time: new Date(2012, 2, 14, 15, 25),
});

我知道我可以通过匹配参数来过滤Collection,例如

    Meteor.subscribe('posts', 'type1');

    Meteor.publish('posts', function(category) {
        return Posts.find({category: category});
    });

但是,我希望能够以更高级的方式过滤: 1)通过“时间”字段,例如所有帖子介于2012年1月1日至2013年1月1日之间。 2)通过搜索所有具有某些单词的帖子,例如“文本”领域的“世界”。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:9)

您可以像这样组合selectors

Posts.find({
  category: category,
  time: {$gte: date1, $lte: date2},
  text: new RegExp(searchTerm)
});