我有我的collection
SocialWall
並且每個用戶都有自己的Document
,每月有Event
驅動的通知。Mongo Map使用PHP爲社會新聞素材場景減少vs排序
我的問題是,users
將要在Event
對象進去SocialWall
基於現場TS
新的通知。有效詢問自TS以來,您能否通知我所有通知?(爲了舉例假設TS
是在同一個月內)
我有1個選擇在這裏,以便給用戶只有他/她想要的東西。
1)我是否從SocialWall
中獲取所有的整個月份並將其排序在PHP
?
隨着用戶的朋友增加,與應用程序不同的交互增加陣列將真正快速增長,因爲用戶將有很多事件。因此,我將不得不按TS
排序和過濾一個巨大的數組。這可能不是大規模性能或內存管理的最佳選擇。
2)我是否製作Map Reduce
函數並使MongoDB
給我排序的&過濾的數組?
我一直在閱讀,有很多關於map reduce
不是非常有效的評論。是的,因爲它2.4
有所改善,但作爲一個new to Mongo
和Map Reduce
(我從來沒有做過一個之前)我不知道什麼是真正的意思在性能方面。因此,我擔心創建一個緩慢的查詢,反過來會給我的Mongo服務器帶來更大的壓力。此外,我一直在讀,有很多人喜歡,以獲得最佳的性能,使用Hadoop
他們與map reduce
複雜的查詢。
我想知道什麼是我的問題,目前最好的解決辦法?我應該去爲PHP
或作出Map Reduce
排序?
如果Map Reduce
是最好的解決辦法,我怎麼能走呢?
文件看起來是這樣的
SocialWall
{
_id: MongoId
userId: MongoId
Month: 1003(MonthYear)
Events:[]
}
Event
{
_id: MongoId
userId: MongoId
ts: ISODate
details:[]
likedBy:[]
comments:[]
}
社會牆面最好爲每行一個事件與該牆整牆的帖子的細節做了沒有@Sammaye你的意思是沒有'SocialWall'以及直接讀取'聯接需要 – Sammaye
Event'?但是,我必須在所有用戶朋友的ID中搜索'event'才能找到他們的事件。這將創造更多的查詢?如果/當我需要啓動'Sharding'時,這也不會讓我的生活變得糟糕嗎? –
MongoDB不適合某些場景。這可能是其中之一。 – WiredPrairie