我有消息的集合:有什麼辦法可以自動更新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