猫鼬:在单个文档的数组中计算大量项目

时间:2020-06-02 18:20:31

标签: mongodb mongoose

使用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能够增长到一个庞大的数目,并且希望有一种可扩展的解决方案。

0 个答案:

没有答案