यह फैन-इन बनाम फैन-आउट समस्या है। मेरा सुझाव है कि आप फैन-आउट आज़माएं:
एक feed
रखें अपने उपयोगकर्ताओं के लिए संग्रह। जब कोई उपयोगकर्ता कोई दस्तावेज़ अपलोड करता है, तो उसके प्रत्येक मित्र फ़ीड आइटम संग्रह में एक नया फ़ीड आइटम सम्मिलित करें। संग्रह इस तरह दिख सकता है:
{
"_id": (some id)
"UserId": (id of the user who 'owns', i.e. reads this feed)
"FriendId": (if of the friend who posted the file)
"FriendName": "John Doe" (name of the fried, denormalized)
"Timestamp": ...
}
एक मिश्रित अनुक्रमणिका का उपयोग करें {UserId, Timestamp}
।
यह दृष्टिकोण लेखन-भारी है:यदि जेन के सैकड़ों मित्र हैं, तो इन सैकड़ों प्रविष्टियों में समय लगेगा। दूसरी ओर, किसी फ़ाइल को अपलोड करने में आम तौर पर वैसे भी बहुत समय लगता है, इसलिए ओवरहेड नगण्य है, और आपकी रीडिंग हास्यास्पद रूप से सरल होगी।
बेशक, यह आगे अनुकूलित हो सकता है अधिक प्रयास के साथ, लेकिन इसे काफ़ी ट्रैफ़िक के लिए ठीक काम करना चाहिए।