MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब स्कीमा परिभाषित

जो मैं आपके कोड से देख सकता हूं, आपका वर्तमान 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

आशा है कि आप यही चाहते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:लिंक के बिना यादृच्छिक तत्व कैसे वापस करें? (मोंगोडीबी, सी#)

  2. क्या आप मोंगो में $addToSet के लिए एक कुंजी निर्दिष्ट कर सकते हैं?

  3. मोंगोडब में गतिशील, गैर-अद्वितीय क्षेत्रों पर पूछताछ और छँटाई करते समय रंगे हुए पृष्ठांकन

  4. मोंगो संग्रह को JSON प्रारूप में डंप करें

  5. जावा एपीआई का उपयोग करके "पसंद" के साथ मोंगोडब से कैसे पूछें?