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 增长到一个巨大的数字,并且更喜欢可扩展的解决方案。
解决方案
推荐阅读
- java - 是解决android h264解码器延迟的方法吗?
- python - 为什么我手动计算 f1_scores 与 sklearn.metrics 输出时不同
- python - 如何使用熊猫删除一行中多次出现的行
- function - 如何在ue4中停止终端
- authentication - Fetch() 中的 Nuxt 和 $auth
- css - 在 RMarkdown xaringan /reveal.js 幻灯片中打开和关闭幻灯片编号显示
- php - 与 MongoDB 的 PHP SSL 连接
- matplotlib - 如何根据坐标放置matplotlib图例
- google-apps-script - 试图减少将工作表从多个电子表格复制到合并的主版本的 GAS 代码的运行时间
- javascript - React JS交通灯模拟器中的模式错误