我正在 MongoDB 中制作一个新应用程序,我发现面向文档的建模风格非常适合我的所有模型。
但是,我的一个绊脚石是“签入”式操作。用户可以在某个位置签到,我需要为每次签到存储以下内容:
- 用户身份
- 地点编号
- 入住日期
现在通常我只是将它作为嵌入存储在用户文档下,但我经常想问以下问题:
- 用户签到的所有地方都在哪里?
- 在某个地方发生的所有签到是什么?
- 给定用户位置组合的所有签到?
- 用户的所有签到或特定时间范围内的地点?
在关系数据库中,这令人尖叫has-many through
,但在 Mongo 中,这并不是那么明显的关系。我是否应该让 Checkin 成为顶级对象并接受连接式查询的性能影响?随着时间的推移,我可能还需要向签入对象添加字段,因此我希望保持解决方案的灵活性。