1
我有收集朋友想法如何查詢兩個集合MongoDB中
- userId: user id
- Friends: array of user ids
而且用戶
- _id: userId
- Last Login
- Other User info fields
上次登錄字段,如果用戶在瀏覽我的網站每5分鐘更新一次。
現在我有邏輯從哪裏獲得的用戶ID從朋友朋友集合,然後查詢用戶收集與IDS獲取用戶信息。
補充:除了在未來的版本我想補充一點,用戶將能夠從其他集合添加好友,不僅用戶,而且寵物等等朋友嵌入式陣列看起來像{用戶ID,PetId}
但對於下一個版本我想添加新的功能,以顯示按上次登錄排序的朋友。
解決方案,我認爲會的工作
- 地圖減少選擇 - 易於實現,但很可能有性能問題
- 地圖減輕更新 - 在這種情況下,我可能會使用屬性「走出去」在每個更新上寫新的集合,所以然後我將有新的集合Friend.reduced與我需要的所有信息,然後我可以很容易地查詢它索引
- 添加新屬性最後更新爲朋友列表集合,所以它會看起來像{FriendId,LastUpdate}邏輯將是e在業務層面上實施。
還有什麼其他選擇來解決我的問題?
那麼它也和想法,但最複雜的是,在我的項目中,朋友不僅是用戶:)他們也將是寵物。 :) –
嗯,我只是想,但可能這個解決方案將工作,因爲寵物擁有者和這個所有者是用戶ID,所以朋友陣列將有對象{UserId,PetId - 這將是空的}然後,我可以輕鬆排序,並仍然如果朋友被添加爲寵物,我會得到關於寵物的信息。 –
你可否在問題中加入一些細節。它看起來像一個簡單的查詢工作,並不清楚爲什麼你想要map-reduce。 – zero323