我有消息的集合:有什么办法可以自动更新MongoDB中的两个集合?
{
userid: ObjectId
total: int
unread: int
}
当我删除“邮件”收藏,我也需要减少“总的消息:
{
messageid: ObjectId
userid: ObjectId
message: string
isread: true|false
}
和消息的集合,每个用户计数“在”计数“集合中,并且有条件地(如果”messages.isread“== false)减少”未读“字段。
为此,我需要先检索消息,检查其“isread”字段,然后更新计数。这些消息可能会被标记为在这些操作之间进行读取,然后我会错误地减少“未读”计数。
有没有一种方法可以根据一次拍摄中的其他收集结果有条件地更改某个收藏集中的某些内容?
这也是我的问题:)我的网站会有相当高的负载,而且我不想在每次需要时重新计算统计数据,所以我使用的是计数器集合。 – Andrey 2011-05-23 19:55:11
如果您尚未这样做,则应该对其进行配置。 – Maxence 2011-05-24 07:12:47
即使没有分析,我可以说cursor.count()总是比检索一个数字慢得多,特别是在具有数亿条记录的集合上。 – Andrey 2011-05-24 11:57:37