Meteor订阅不会更新收集的sorting顺序

// Snippet from Template <div class="post-container"> {{#each elements}} {{> post-element this}} {{/each}} </div> // Snippet from Client Meteor.subscribe('thePosts'); // Snippet from Server Meteor.publish('thePosts', function(){ return Posts.find({}, {sort:{createdAt:-1}, reactive:true}); }); 

当我做…

 Posts.insert({body:postBody, createdAt: new Date()}); 

后文档被添加并出现在我的列表的末尾,而不是我的发布函数中指定的降序。 任何想法我做错了什么?

谢谢!

发布function确定哪些logging应该同步到任何订阅客户端的迷你mongo数据库。 因此,对发布函数中的数据进行sorting实际上对客户端没有任何影响,因为客户端数据库可能以其他方式存储它们。

当然,您可能想要在发布者的find中使用sorting,以便将logging数量限制为最近的N个logging – 但是,这也只是决定将哪些logging同步而不是如何存储/使用的方式客户端。

一旦logging已经同步到客户端,取决于模板代码来确定如何显示结果。 例如:

 Template.myTemplate.elements = function() { return Posts.find({}, {sort: {createdAt:-1}}); } 

另请参阅常见错误的post“sorting发布”部分。

你没有发布你的模板帮手代码。

当你从辅助函数return Posts.find() ,查询也应该包含sorting参数,如下所示:

 Template.myTemplate.elements = function(){ Meteor.subscribe('thePosts'); return Posts.find({}, {sort:{createdAt:-1}, reactive:true}); }