我正在构建一个使用express,mongodb和mongoose的CRUD应用程序。我有2个架构(为简单起见,我将它们称为“用户和内容”)。该应用程序的整体功能是用户创建可以被所有其他用户查看的内容。内容可以由创建者编辑和删除,也可以由其他用户收藏。我希望用户能够以2种不同的版本查看他们的收藏夹:1表示收藏时的版本(静态内容),1表示当前的“实时”版本(因为该内容可能在编辑后被编辑)喜欢的。)
我了解如何创建静态收藏夹(我可以将内容复制到用户的收藏夹数组中)和实时收藏夹(我可以将对内容的引用存储在用户的收藏夹数组中)创建。我不知道如何同时使用这两种方法,因此用户可以单击自己喜欢的一种,然后在静态内容和实时内容之间切换。我的想法是,由于用户收藏夹中的复制内容包含一个内容ObjectId字段,因此我应该能够填充该内容并从静态内容访问实时内容。我疯了吗?
User {
(some properties of the user...)
favorites: [{_id,title,body,...},{_id,...}...]
}
Content {
objectId,(more properties of the content...)
}
现在,我的结构类似于上述内容,因此我可以遍历用户的收藏夹并呈现静态内容(因为实际内容已复制到收藏夹中,而不仅仅是对内容的引用)。我想知道的是,是否可以在收藏夹中填充ObjectId来访问此内容的实时版本,因此除了静态版本外,我还可以呈现实时版本。是否有实现此功能的最佳实践?