我已经考虑了几天,我觉得我的头要爆炸了……我希望你能帮助我解决这个问题。
我正在使用 Meteor 1.10 + Blaze
我有一个包含作者数据的集合,另一个包含这些作者发表的帖子的集合。每个作者都是许多帖子的创建者。
我想显示一个列表,其中显示每个作者的姓名和他们最后一篇文章的标题/日期,例如:
架构示例:
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 天最后一篇文章的作者,这将变得非常容易和高效。只是为了确保您的集合中有要用于搜索的任何字段的索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句