如何解决将数据从 MongoDB 存储到状态 - 最佳选择
我是 MERN 堆栈的新手,只是将一个小博客站点项目放在一起进行一些练习...
就我而言,我正在检索所有博客文章,以便在主屏幕上简要列出,每篇文章都带有指向完整博客文章的链接。在这种情况下,数据已经被检索并存储在 React 状态。
问题是,当我访问完整的博客文章时,最好从已检索到的以状态保存的博客的完整列表中获取数据,还是应该使用 ID 再次从数据库中获取单个博客条目。
>我有信心实施其中之一 - 我只是在考虑最佳实践,或者这样做的好处/危险?数据会不会不同步?
我是新手 - 温柔点! 谢谢大家的建议。
解决方法
我认为在获取主页的所有博客时,您应该只获取将为每个博客显示的数据,而不是获取整个博客。 假设您的每个博客都有以下字段:
{
"title" : "Title of blog","body" : "This is my blog,...."
"comments": [comment1,comment2,...]
"upvotes" : [],"downvotes" : [],"author" : ObjectId("ref to the author schema"),"time" : 10:30 PM
}
在主页上,我假设您只需要显示作者、标题、时间和正文的一些行,因此您只需要获取这些内容而不是获取整个博客。 为此,您可以使用猫鼬的 .select() 函数:
const blogs = await Blogs.find({}).select({ title: 1,time: 1,body: 1,author: 1 });
这样,您将只能获得所需的数据。通过实现这一点,当用户点击博客查看它时,您可以重新获取整个博客并获得最新结果(如果博客更新或添加了新的评论/投票,更改将被反映)。 希望这能回答您的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。