mongodb - 在MongoDB中查找所有与其他人没有关系的文档
问题描述
我有一组用户和一个帖子。我想查找一位用户尚未查看的所有帖子。我预计一位用户查看的帖子数量会随着时间的推移而增长,对于某些用户来说可能会达到数万或数十万,尽管大多数用户只有几百个。
我应该如何在 MongoDB 数据库中组织我的数据?
我应该将查看过的帖子数组保留在 User 集合中、Post 集合中、单独的集合中(每个视图一个文档)还是其他什么?
那么我应该如何查询数据库?
解决方案
查询应该可以使用聚合管道构造。首先$lookup
加入帖子以发布视图,然后$match
删除$exists: false
现有帖子。
这不会是一个具有大量数据的廉价查询。使其更快的一种策略是限制,例如,在加入之前允许帖子的时间,或将帖子的范围限定为论坛/标签等。
推荐阅读
- python - 如何访问以编辑已打开的 DOCX(在 python 中使用 win32com.client)
- python - How do i perform operations between elements of a lists in Python using indecies?
- json - 如何降低json中的级别?
- java - 即使用户没有点击 EditText 字段,也会调用 TextWatcher 的 afterTextChanged() 事件回调
- javascript - Angular 构建产品在运行时失败
- winforms - 写入日志以到达带有 serilog 扩展名的文本框
- reactjs - 当用户选择相同的选项时反应选择 onChange 触发器
- python - 您如何将 alpha vantage 日期设置为列?
- android - Use android dependency from Azure DevOps public artifact
- java - java - 如何使用secp256r1椭圆曲线密钥对在java中执行加密和解密?