【发布时间】:2014-10-29 03:33:49
【问题描述】:
我有一个最近变得非常大的收藏。我曾经订阅它的所有文档,并使用 myapp 中的搜索字段对其执行搜索。
对于这个更大的集合,加载需要很长时间。
您有什么建议可以减少加载时间,但仍然对整个集合进行强力搜索?
我可以通过客户端订阅集合的一部分(执行我的搜索查询)吗?
我现在拥有的:
在我的路由器上:
waitOn: function(){
return [Meteor.subscribe('files')];
},
在我的客户端上(点击搜索按钮时):
'click #search':function(e,context) {
Session.set("keywords",$("#search_input").val());
}
模板
Template.filwsList.helpers({
files_results: function () {
var keywords = new RegExp(Session.get("keywords"), "i");
var result = Files.find({$or:[{name:keywords},{description:keywords},{tags:keywords}]},{sort: {updatedAt: 1}});
return result;
}
})
【问题讨论】:
-
我问了一个您可能会觉得有用的类似主题的问题。 stackoverflow.com/questions/26225840/…。它列出了如何使用 pub/sub 或使用服务器方法搜索大型集合,并提供了这两种方法的示例。
标签: javascript meteor publish-subscribe