meteor - Meteor - 发布所有作者的最佳方法,仅发布他们的最后一篇文章
问题描述
这几天我一直在考虑这个问题,我想我的脑袋要爆炸了……我希望你能帮助我解决这个问题。
我正在使用 Meteor 1.10 + Blaze
我有一个包含作者数据的集合,另一个包含这些作者发表的帖子的集合。每个作者都是许多帖子的创建者。
我想显示一个列表,其中显示每个作者的姓名和他们最后一篇文章的标题/日期,例如:
- 布莱恩·洛佩兹——“如何快乐”——20 年 3 月 25 日
- 雷·史密斯——“学习烹饪”——20 年 2 月 4 日
架构示例:
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 天有最后一篇文章的作者,这将非常容易和高效。只是为了确保您的集合中有一个索引,用于查找要用于搜索的任何字段。
推荐阅读
- java - 从递归方法返回数组
- r - 从 R 导出到 excel 时删除 CET/CEST 时移
- browser - TensorflowJS - 在非活动选项卡中执行推理
- javascript - 在 JSP 中使用 Vue.js,标签/指令冲突
- c# - 如何在 Web 应用程序 asp.net MVC 中从我的 sql 中提取数据?
- freeradius - freeradius 所有用户的一个密码
- python - 使用 Python Big Query API,仅返回来自 Append 处置的新行?
- c# - Unitiy Firebase - 更新多个数据而不删除其他节点
- azure - 部署在云上的 Corda 节点数
- azure - 运行 SSIS 包时出现“RPC 服务器不可用”错误