जो मैं आपके कोड से देख सकता हूं, आपका वर्तमान News
और Review
स्कीमा ठीक लग रहा है।
आपको एक और Schema
परिभाषित करने की आवश्यकता है Trending
. के लिए ।
var TrendingSchema = new mongoose.Schema({
referenceId : {
type : mongoose.Schema.Types.ObjectId
},
postType : String //To store News or Reviews
});
नया News
सहेजते समय या Review
, _id
डालें Trending
. में नए सहेजे गए दस्तावेज़ का संग्रह।
var news = new News();
news.image = newsImage;
...
news.save(function(err,result)
{
if(!err)
{
var trending = new Trending();
trending.referenceId = result._id;
trending.postType = "News";
treding.save(function(err)
{
if(!err)
{
//success response
}
else
{
//error response
}
});
}
else
{
//send error response
}
});
इसी तरह रिव्यू पोस्ट को सेव करते समय
var review = new Review();
review.image = reviewImage;
...
review.save(function(err,result)
{
if(!err)
{
var trending = new Trending();
trending.referenceId = result._id;
trending.postType = "review"
treding.save(function(err)
{
if(!err)
{
//success response
}
else
{
//error response
}
});
}
else
{
//send error response
}
});
इस प्रकार अब Trending
संग्रह में शामिल होंगे, नए सहेजे गए News
या Review
, क्रम में वे created
. हैं . इस प्रकार आप नई Review
प्राप्त करने में सक्षम होंगे या News
पोस्ट करें।
Trending
लाते समय , आप populate
. कर सकते हैं उन्हें News
. का उपयोग करके या Review
Schema
postType
. के आधार पर ।
Trendign.find({}).limit(10).exec(function(err,result)
{
if(!err && result.length!=0)
{
var trendingPosts = [];
result.forEach(function(trending){
if(trending.postType === "News"){
trending.populate({path : 'referenceId',model : 'News'},function(err,populatedItem)
{
if(!err)
{
trendingPosts.push(populatedItem);
}
});
}
else if(trending.postType === "Review"){
trending.populate({path : 'referenceId',model : 'Review'},function(err,populatedItem)
{
if(!err)
{
trendingPosts.push(populatedItem);
}
});
}
});
//now send the trendingPost array with latest News and Review Posts
}
else
{
//send Error response
}
});
अब आप नवीनतम News
दिखा सकते हैं या Review
और टाइप करें postType
।
आशा है कि आप यही चाहते हैं।