// 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()});

post文档将被添加并显示在列表的末尾,而不是发布函数中指定的降序.知道我做错了什么吗?

谢谢

推荐答案

publish函数决定哪些记录应该同步到任何订阅客户端的mini mongo数据库.因此,在publish函数中对数据进行排序实际上对客户端没有影响,因为客户端数据库可能会以其他方式存储它们.

当然,您可能希望在发布者的find中使用sort,以便将记录数限制为最近的N个,但这只是一种决定同步哪些记录的方法,而不是决定客户端如何存储/使用这些记录的方法.

记录同步到客户端后,由模板代码决定结果的显示方式.例如:

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

另请参阅我在common mistakes上发布的文章的"分类发布"部分.

Mongodb相关问答推荐

如何从文档列表的数组内部打印一个对象?

如何使用mongodb进行离线开发?

如何在MongoDB中搜索有序子集的方法?

仅当特定字段存在于 MongoDB 中时才更新它

尽管前一阶段输出文档,$group stage 仍返回零文档

在推入 mongodb 时自动填充 golang struct 中的 created_at 和 updated_at

MongoDB查询仅返回嵌入文档

mongoDB vs mySQL - 为什么在某些方面比另一个更好

当属性确实存在时,为什么mongoose模型的 hasOwnProperty 返回 false?

使用 EventSourcing(NodeJS、MongoDB、JSON)跨多个偶尔连接的客户端同步数据

try 解析序列化 JSON 字符串时处理 MongoDB 的 ISODate()

将 MongoDB 数据库复制到本地计算机

具有简单密码认证的 MongoDB 副本集

从每个组中 Select 前 N 行

在 Mongo 中,$near 和 $nearSphere 有什么区别?

如何防止MongoDB在查找文档时返回对象ID?

Mongo:匹配聚合查询中的日期似乎被忽略了

mongoose中的 Date.now() 和 Date.now 有什么区别?

为什么 Mongo 提示会使查询运行速度提高 10 倍?

mongoose — 判断 ObjectId 是否存在于数组中