2013-09-05 20 views
18

मैं नेवला पर काम कर रहा हूँ MongoDB में एक DB में एक संग्रह से सभी डेटा को सूचीबद्ध करने में खाली रिटर्न निम्नलिखित कोड:Model.find() नेवला

exports.listDoc = function(req, res) {  
var Model = mongoose.model(req.query.model); //This is defined and returns my desired model name 
     Model.find().populate('name').exec(function(err, models) { 
      if (err) { 
       res.render('error', { 
        status: 500 
       }); 
      } else { 
       res.jsonp(models); 
      } 
     }); 
}; 

मैं पहले से ही डेटाबेस में अपनी प्रविष्टि है लेकिन इसके बाद के संस्करण कोड खाली देता है। क्यूं कर?

संपादित करें: निम्न कोड भी खाली रिटर्न:

exports.listDoc = function(req, res) { 
    var Model = mongoose.model(req.query.model); 
    Model.find({},function(err,models){ 
     console.log(models); 
     if (err) { 
      res.render('error', { 
       status: 500 
      }); 
     } else { 
      res.jsonp(models); 
     } 
    }); 
}; 

स्कीमा प्रयोग किया है:

var Organization = mongoose.Schema({ 
    name: String 
}); 
+0

मुझे आपके कोड स्निपेट के साथ कोई स्पष्ट समस्या नहीं दिखाई दे रही है। क्या आप संगठन के लिए अपनी स्कीमा पोस्ट कर सकते हैं? क्या आपका संग्रह मोंगोडब में "संगठन" कहलाता है? –

+0

मैंने स्कीमा का उपयोग किया है – codeofnode

+1

अभी भी ठीक दिखता है। जब आप mongodb से कनेक्ट करते हैं तो क्या आप सही डेटाबेस नाम से कनेक्ट हो रहे हैं? –

उत्तर

49

आपकी समस्या है संग्रह pluralizes की कोशिश करो। मोंगोस "संगठन" से पूछताछ कर रहा है लेकिन आपका डेटा "संगठन" के रूप में मोंगोडब में है। उन्हें मैच बनाएं और आपको जाने के लिए अच्छा होना चाहिए। आप या तो मोंगो शेल के माध्यम से इसे मोंगोडब में बदल सकते हैं या इसके बारे में मोंगोज़ बता सकते हैं। नेवला डॉक्स से:

var schema = new Schema({ name: String }, { collection: 'actor' }); 

// or 

schema.set('collection', 'actor'); 

// or 

var collectionName = 'actor' 
var M = mongoose.model('Actor', schema, collectionName) 
+1

बहुत धन्यवाद ... मैंने बिताया पिछले कुछ घंटों में खुदाई क्यों मैं खाली सरणी प्राप्त कर रहा हूं। – rahul

+1

+1। इस तरह की सरल गलती आपके सभी मूल्यवान समय को दूर करती है ... – Tarun

+1

ऐसी छोटी गलती अभी तक मुझे इसे खोजने में इतनी देर लग गई। मैं बहुत सवाल लिख रहा था और इसी तरह के सवाल के बीच मुझे यह मिला। –

0

आधिकारिक doc

आबादी से स्वचालित रूप से निर्दिष्ट पथ बदलने की प्रक्रिया है दस्तावेज में दस्तावेज़ (ओं) के साथ अन्य संग्रह (ओं) से।

इसके बिना पॉप्युलेट नेवला

Model.find({}).exec(function(err, models) { 
      if (err) { 
       res.render('error', { 
        status: 500 
       }); 
      } else { 
       res.json(models); 
      } 
     }); 
+1

से देख सकता हूं यह भी खाली हो जाता है .. – codeofnode

+1

'res.json (मॉडल) ' – hawk

+1

के साथ फिर से प्रयास करें यह वापसी खाली – codeofnode

0

मैं पीटर लियोन्स जवाब अधिक बस, केवल में MongoDB संग्रह नाम जोड़ने कर देगा (रों पत्र)। उदाहरण के लिए यदि आप संग्रह जो आप उपयोगकर्ता या पासवर्ड कॉल करना चाहते हैं बनाने के लिए, बस रों शब्द के अंतिम में पत्र लिखने (उपयोगकर्ताओं, पासवर्ड)।