我想了几天,我觉得我的头都要炸了......希望你能帮我,给我带来一些启示。
我用的是Meteor 1.10 + Blaze。
我有一个收集了作者的数据,另一个收集了这些作者发表的文章。每个作者都是许多文章的创造者。
我想显示一个列表,其中出现了每个作者的名字和他们最后一篇文章的标题日期,例如。
Schema例子。
author_schema = {
_id: 'JsQEJG3qsBrKE6hep',
name: 'Bryan',
surname: 'Lopez',
}
post_schema = {
_id: 'Ftxw9YKTaxnKtJztg',
tittle: 'how to be happy',
date: ISODate("2020-01-30T10:00:46.572Z"),
authorId: 'JsQEJG3qsBrKE6hep'
}
我很清楚,我必须发布所有的作者,但我想避免的是将所有的帖子发布到客户端,因为这样会减慢加载速度,而且效率很低。
有什么办法可以避免发布所有的帖子,而只发布每个作者的最后一篇帖子(最近日期的帖子)?
非常感谢你的帮助 流星规则!
好吧,这很简单。最有效的方法是保存2個額外的字段在作者集合上,然後在每次建立文章時更新這些字段。
再次强调:当你把帖子保存到帖子集合时,把 lastPostName 和 lastPostDate 保存在作者集合上,并在每次创建帖子时覆盖。你也可以添加lastPostId,这样你就可以很容易地建立一个指向那个特定帖子的url。
例如(所有这些数据都存储在作者集合中)。
<span>
<a target="_blank" href="....your url/dynamic...postId">{Your dynamic post name}</a>
<span>{Your dynamic post date}</span>
</span
如果你想做搜索,如:作者与今天或过去7天的最后一篇文章,这将是非常容易和有效的。只是要确保你的收藏里有一个你想用来搜索的任何字段的索引。