假设我有一个有成千上万用户的服务,并且我想发布他们可以查看的新闻提醒。一旦他们看到一个,它被标记为看到(显然,只为那个用户)。MongoDB - 如何处理阅读新闻提醒的用户
我想我知道这个答案,但是在新闻项目上存储一个已经看到它的用户列表是否更好?或者,最好在用户文档上存储他们看到的所有新闻项目的列表?
我假设后者更好,主要是因为如果我有20,000用户,这意味着如果他们都看到了特定的新闻提醒,那么我有一个存储在该新闻提醒文档中的20,000个ID的数组,这可能不好。但这种结构似乎更好:
{
email: '[email protected]',
name: 'Person',
seenNews: [
'TTJGGiPsTqqLio4sf',
'vhePmuShra3MSzYsu',
'JKFqqCKDmtuuoQBXu',
'gCFyzu8BAihj8NnXB'
]
}
我可能不会有超过几百新闻项目多,再加上我可以随时回去,反正删除旧的。
还是有更好的方法来处理这个问题吗?