Javascript Meteor中发布、订阅和数据的筛选和排序
我列出了属于具有Javascript Meteor中发布、订阅和数据的筛选和排序,javascript,node.js,meteor,iron-router,Javascript,Node.js,Meteor,Iron Router,我列出了属于具有 this.route('notifications', { path: '/notifications', template: 'notificationList', waitOn: function() { return Meteor.subscribe('notifications'); }, data: function() { return Notifications.find( {userId: Meteor.userI
this.route('notifications', {
path: '/notifications',
template: 'notificationList',
waitOn: function() {
return Meteor.subscribe('notifications');
},
data: function() {
return Notifications.find(
{userId: Meteor.userId()},
{sort: {createdAt: -1}}
);
},
fastRender: true
});
我正在用
Meteor.publish("notifications", function () {
return Notifications.find(
{userId: this.userId},
{sort: {createdAt: -1}}
);
});
我不知道该在哪里做什么。我是否必须在Meteor.publish()
和数据:…
中筛选用户id?我必须在两个函数中进行排序吗?我已经看到,也可以在Meteor.subscribe()
中进行排序和筛选
在这三个功能中几乎做相同的事情似乎有点多余。我做得对吗?调用Meteor.publish时,通常需要进行排序,以便在应用限制时发送正确的文档。例如,如果您只要求10个项目,那么您需要首先对它们进行排序,以确保您拥有正确的10个项目,而不是10个随机结果 客户端的排序顺序与服务器的发布请求的排序顺序没有任何关系,也不能保证它们是相同的。例如,考虑有多个发布请求发布到客户端上的相同集合的情况,每个请求具有不同的排序顺序。以一种有用的方式对这些结果进行预排序是不可能的 因此,在访问客户机上的集合时,通常还需要请求对项目进行排序。排序不必与服务器上的排序相同(尽管通常是这样)
至于Meteor.subscribe,您在那里传递的参数取决于发布函数的参数,因此您可以让客户端将排序顺序传递给发布函数。当需要使用相同的发布函数根据排序顺序返回不同的结果时,这非常有用。此外,如果订阅和提供数据上下文的代码位于同一路由控制器中,则可以使用单个变量保持排序条件,从而减少代码重复和出错的可能性。调用Meteor.publish时,通常需要进行排序,以便在出现错误时发送正确的文档正在应用的限制。例如,如果您只要求10个项目,那么您需要首先对它们进行排序,以确保您拥有正确的10个项目,而不是10个随机结果 客户端的排序顺序与服务器的发布请求的排序顺序没有任何关系,也不能保证它们是相同的。例如,考虑有多个发布请求发布到客户端上的相同集合的情况,每个请求具有不同的排序顺序。以一种有用的方式对这些结果进行预排序是不可能的 因此,在访问客户机上的集合时,通常还需要请求对项目进行排序。排序不必与服务器上的排序相同(尽管通常是这样)
至于Meteor.subscribe,您在那里传递的参数取决于发布函数的参数,因此您可以让客户端将排序顺序传递给发布函数。当需要使用相同的发布函数根据排序顺序返回不同的结果时,这非常有用。此外,如果订阅和提供数据上下文的代码位于同一路由控制器中,则可以使用单个变量保持排序条件,从而减少代码重复和出错的可能性。调用Meteor.publish时,通常需要进行排序,以便在出现错误时发送正确的文档正在应用的限制。例如,如果您只要求10个项目,那么您需要首先对它们进行排序,以确保您拥有正确的10个项目,而不是10个随机结果 客户端的排序顺序与服务器的发布请求的排序顺序没有任何关系,也不能保证它们是相同的。例如,考虑有多个发布请求发布到客户端上的相同集合的情况,每个请求具有不同的排序顺序。以一种有用的方式对这些结果进行预排序是不可能的 因此,在访问客户机上的集合时,通常还需要请求对项目进行排序。排序不必与服务器上的排序相同(尽管通常是这样)
至于Meteor.subscribe,您在那里传递的参数取决于发布函数的参数,因此您可以让客户端将排序顺序传递给发布函数。当需要使用相同的发布函数根据排序顺序返回不同的结果时,这非常有用。此外,如果订阅和提供数据上下文的代码位于同一路由控制器中,则可以使用单个变量保持排序条件,从而减少代码重复和出错的可能性。调用Meteor.publish时,通常需要进行排序,以便在出现错误时发送正确的文档正在应用的限制。例如,如果您只要求10个项目,那么您需要首先对它们进行排序,以确保您拥有正确的10个项目,而不是10个随机结果 客户端的排序顺序与服务器的发布请求的排序顺序没有任何关系,也不能保证它们是相同的。例如,考虑有多个发布请求发布到客户端上的相同集合的情况,每个请求具有不同的排序顺序。以一种有用的方式对这些结果进行预排序是不可能的 因此,在访问客户机上的集合时,通常还需要请求对项目进行排序。排序不必与服务器上的排序相同(尽管通常是这样) 至于Meteor.subscribe,您在那里传递的参数取决于发布函数的参数,因此您可以让客户端将排序顺序传递给发布函数。当需要使用相同的发布函数根据排序顺序返回不同的结果时,这非常有用。此外,如果订阅和提供数据上下文的代码位于同一路由控制器中,则