我正在设计一个使用MongoDB处理RSS订阅的应用程序。目前我的集合如下:
Entry
fields: content, feed_id, title, publish_date, url
Feed
fields: description, title, url
User
fields: email_address
subscriptions (embedded collection; fields: feed_id, tags)
用户可以订阅从嵌入的订阅集合链接的Feed。通过订阅,我可以获得一个用户应该看到的所有Feed以及对应的条目列表。
如何存储特定用户的条目状态信息(isRead,isStarred等)?当用户查看条目时,我需要记录isRead = 1。我需要能够执行的两个常见查询是:
- 查找特定Feed的所有条目,其中isRead = 0或当前不存在状态
- 对于特定用户,将发布日期早于某个时间点的所有条目标记为isRead = 1(这可能是数百甚至数千条记录,因此必须高效)