使用MEAN堆栈和Mongoose(5.9),请考虑以下用户文档模型:
{
"_id" : ObjectId,
"Username" : "SamWhatever",
"Followers" : [ //may potentially grow to a huge number
ForeignObjectId,
ForeignObjectId,
ForeignObjectId,
...
],
"FollowersAmount": 20000001 //is it wise to substitute this by some native MongoDB functionality?
}
我跟踪数组中的关注者,以可能列出所有关注者(通过填充)。我想在用户的个人资料页面上显示关注者的数量。当然,我不想传输整个关注者数组,而只是将大量关注者发送到浏览器。我不确定是否应该在每个用户文档中保留一个附加的FollowersAmount字段,当然,这也需要进一步的逻辑以使该值保持最新,或者我是否应该使用本机的Mongoose功能(也将始终速度足够快,而与该数组中将来的项目数量无关)在查询用户时即时计算关注者的数量,然后将结果添加到结果集中。类似于(伪代码):
searchquery = User.findById({_id: id});
searchquery.populate({
count: 'Followers'
});
任何最佳实践建议使用什么? 同样,我只想计算一个文档的一个数组中的项目数,而不是跨多个文档。此外,我希望数组Followers能够增长到一个庞大的数目,并且希望有一种可扩展的解决方案。