ठीक है, मैं रूबी/मोंगोमैपर विशेषज्ञ नहीं हूं, इसलिए मैं इसे "मॉडल" में मैप नहीं कर पाऊंगा। हालांकि, अगर आप इसे मोंगो के नजरिए से देखते हैं, तो यहां बताया गया है कि आप शायद डेटा को मोंगो में कैसे देखना चाहते हैं।
संग्रह: श्रेणी
{"_id" : "car"}
{"_id" : "vintage_car", "parent" : "car", "fields" : ["year" : "integer", "original_parts" : "boolean", "upgrades" : "text"] }
संग्रह :उत्पाद
{"_id" : "1234", "name" : "Model-T", "category" : "car", "sub-category" : "vintage_car", "values" : ["year" : 1942, "original_parts" : false, "upgrades : "XM Radio"] }
तो आपके पास यहां जो है वह बहुत आसान है। आपके पास एक संग्रह है जिसमें सभी श्रेणियाँ और उप-श्रेणियाँ शामिल हैं। यदि कोई वस्तु "उप-श्रेणी" है तो उसके पास "पैरेंट" फ़ील्ड सेट होगा। यदि कोई "पैरेंट" फ़ील्ड नहीं है, तो वह ऑब्जेक्ट एक "श्रेणी" है।
प्रत्येक उप-श्रेणी में "फ़ील्ड" तत्व होता है। "फ़ील्ड" वास्तव में जोड़े की एक सरणी है। इससे रेंडर करने में आसानी होगी। यदि कोई विंटेज कार में प्रवेश करता है, तो आप "विंटेज कार" श्रेणी को देखते हैं और फिर उपयुक्त इनपुट बॉक्स प्रस्तुत करने के लिए "फ़ील्ड" के माध्यम से लूप करते हैं। मैंने "पूर्णांक" और "बूलियन" जैसी सरल चीज़ों का उपयोग किया है, लेकिन आप वास्तव में यहां जो कुछ भी चाहते हैं उसे डाल सकते हैं ("डेटपिकर", "चेकबॉक्स", ...) यह सब आप पर निर्भर है।
अब उत्पाद मूल रूप से श्रेणी और उप-श्रेणी दोनों के संदर्भ को संग्रहीत करता है। यह आपके द्वारा इनपुट की गई सभी फ़ील्ड के मानों को भी संग्रहीत करता है।
इसलिए उत्पाद में वह सभी डेटा है जिसकी उसे आवश्यकता है, जिससे प्रत्येक उत्पाद को प्रस्तुत करना बहुत आसान हो जाए। उत्पाद और उपयुक्त उप-श्रेणी लोड करें और आपके पास पृष्ठ को गतिशील रूप से प्रस्तुत करने के लिए आवश्यक सभी जानकारी होगी।
संपादित करें
टिप्पणी के जवाब में, श्रेणी . में "फ़ील्ड" माप की एक इकाई के साथ बनाया जा सकता है:
..."fields" : [{"length","meters","float"},{"weight","kg","float"},...]