如果你有数以千计的数据,订阅所有数据可能会花费大量的时间和压力在服务器上;但是有时候我们无法避免它。
例如:
我有一个仪表板,我需要提供所有用户数据才能查找。
我无法在发布时限制它,因为我无法正确搜索用户集合。
有没有一种方法可以推荐(一个软件包或一个进程)能够以更快的方式订阅大量数据并减轻服务器压力?谢谢
答案 0 :(得分:1)
这不是您原来问题的答案,但我正在添加流程以使用流星方法而非出版物(无反应性)。
对于以下示例,假设具有大量记录的集合是“UserPosts”
//on server side
Meteor.methods({
getUserPosts: function (userId) {
return UserPosts.find({ userId: userId });
}
});
//on client side
Template.yourTemplate.onCreated(function () {
Session.set("current-user-posts", []);
var template = this;
template.autorun(function () {
var userId = Meteor.userId(); //Instead of this, add your reactive data source. That is, this autorun will run whenever Meteor.userId() changes, so change it according to your needs.
Meteor.call("getUserPosts", function (err, result) {
if (err) console.log("There is an error while getting user posts..");
result = err ? [] : result;
Session.set("current-user-posts", result);
});
});
});
Template.yourTemplate.helpers({
userPosts: function () {
return Session.get("current-user-posts");
}
});
Template.yourTemplate.onDestroyed(function () {
Session.set("current-user-posts", null);
});
现在,您可以在模板助手和其他位置使用Session.get("current-user-posts")
来获取用户帖子。