问题描述 投票:0回答:1

我想了几天,我觉得我的头都要炸了......希望你能帮我,给我带来一些启示。

我用的是Meteor 1.10 + Blaze。

我有一个收集了作者的数据,另一个收集了这些作者发表的文章。每个作者都是许多文章的创造者。

我想显示一个列表,其中出现了每个作者的名字和他们最后一篇文章的标题日期,例如。

  1. Bryan Lopez - "如何才能快乐" - 032520
  2. 雷-史密斯 - "学做饭" - 020420

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'
      }

我很清楚,我必须发布所有的作者,但我想避免的是将所有的帖子发布到客户端,因为这样会减慢加载速度,而且效率很低。

有什么办法可以避免发布所有的帖子,而只发布每个作者的最后一篇帖子(最近日期的帖子)?

非常感谢你的帮助 流星规则!

meteor meteor-blaze
1个回答
1
投票

好吧,这很简单。最有效的方法是保存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天的最后一篇文章,这将是非常容易和有效的。只是要确保你的收藏里有一个你想用来搜索的任何字段的索引。

© www.soinside.com 2019 - 2024. All rights reserved.