2012-12-02 21 views
5

मैं अपने एपीआई योजना बनाने के लिए कोशिश कर रहा हूँ, का उपयोग कर स्कीमा:नेवला - कई उदाहरण के लिए एक संग्रह

/animals   // returns all animals 
/animals/dogs  // returns all dogs 
/animals/cats  // returns all cats 
/animals/dogs/:id // returns dog 

तो, मैं, दोनों 'बिल्ली' और 'कुत्ता' के लिए अलग-अलग मॉडल है के रूप में वे अद्वितीय में शामिल होंगे गुण, हालांकि दोनों आधार प्लगइन के रूप में 'पशु' स्कीमा का उपयोग करते हैं।

तो मेरे सवाल का जहां डाटा स्टोर करने के बारे में आता है, मेरा विकल्प हैं:

1) एकल संग्रह - एक संग्रह के भीतर दोनों बिल्लियों और कुत्तों की दुकान, इस के लिए '/ पशुओं के अपेक्षाकृत आसान डेटा प्राप्त कर देगा एक प्रश्न के साथ

2) एकाधिक संग्रह - अलग-अलग संग्रहों में बिल्लियों और कुत्तों दोनों को स्टोर करते हैं, इससे डाटा स्टोरेज को और अधिक तार्किक बना दिया जाएगा, हालांकि 'जानवरों' के लिए डेटा प्राप्त करने के लिए उस डेटा के एकाधिक प्रश्नों और समापन की आवश्यकता होगी।

क्या कोई अन्य विकल्प है जो मैंने याद किया है, या पसंदीदा दृष्टिकोण?

धन्यवाद

उत्तर

0

क्या MongoDB के बारे में अच्छा है कि यह स्कीमा-कम है। ऐसा लगता है कि आपको वही चाहिए जो आपको चाहिए। मैं सिर्फ सादे node-mongodb-native का उपयोग करने पर विचार करता हूं, और सभी जानवरों को एक संग्रह में संग्रहीत करता हूं।

1

आपके द्वारा उल्लिखित विकल्पों में आपकी समस्या के लिए सबसे उपयुक्त दृष्टिकोण हैं।

अपने विशिष्ट मामले के लिए यदि प्रत्येक मॉडल के अद्वितीय गुण उस बड़े के साथ नहीं जाते हैं तो 1 एक ही संग्रह में सभी डेटा स्टोर करें और आसानी से क्वेरी करें।

अन्यथा यदि आपके मॉडल थोड़े भारी हैं और बहुत सारी संपत्तियां उन्हें अलग-अलग संग्रहों में अलग करती हैं और उन्हें अपने संबंधित मॉडल से पूछती हैं। यह एक और काम करने लगता है लेकिन कम से कम आपको भारी मॉडलों में हेरफेर करने के लिए अधिक अमूर्तता और लचीलापन देगा । मतलब विकल्प 2 के साथ जाना है।

+0

मैं leepowell के समान बिंदु पर हूँ। लेकिन मेरे प्रश्न आपकी प्रतिक्रिया के संबंध में हैं। अगर मैं # 1 के साथ जाना चाहता था, तो आपकी परिभाषा क्या होगी "वह बड़ा नहीं है" ?? मुझे पता है कि आप विशिष्ट कारण संख्यात्मक तत्व नहीं प्राप्त कर सकते हैं। लेकिन क्या कोई बॉलपार्क नंबर है जहां आप # 2 से # 2 के साथ जाने का सुझाव देंगे ?? मैं एक डीबी विकसित कर रहा हूं जिसमें तैनाती और विकसित दोनों विकसित दूरस्थ शिक्षा पाठ्यक्रम वस्तुओं के तत्व शामिल होंगे। या डेवलपर वरीयता के # 1 और # 2 प्रकार के बीच 'ब्रेकपॉइंट' है? –

संबंधित मुद्दे