我在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)通过搜索所有具有某些单词的帖子,例如“文本”领域的“世界”。
这样做的正确方法是什么?
答案 0 :(得分:9)
您可以像这样组合selectors:
Posts.find({
category: category,
time: {$gte: date1, $lte: date2},
text: new RegExp(searchTerm)
});