2013-02-23 119 views
13

मुझे वाईएएमएल के डेटा मॉडल को बहुत पसंद है, जेएसओएन की अधिकांश सादगी को संरक्षित करना और कस्टम डेटा प्रकारों और संदर्भों जैसे कुछ कभी-कभी महत्वपूर्ण सुविधाओं के साथ इसे विस्तारित करना।क्या कोई वाईएएमएल डाटाबेस है?

तो क्या वाईएएमएल डेटा मॉडल (या कुछ बहुत समान) में बहुत सारे डेटा स्टोर करने का कोई तरीका है और इसे इंडेक्स का उपयोग करके पूछताछ करें? एक वाईएएमएल डेटाबेस की तरह, XML databases या मोंगो डीबी जैसे JSON डेटाबेस के समान। या क्या वाईएएमएल से मोंगो डीबी की तरह कुछ मैपर है जो मुझे पारदर्शी रूप से इसे वाईएएमएल स्टोर के रूप में उपयोग करने देता है?

मुझे कुछ भी नहीं मिला है, इसलिए कोई भी नहीं है। वह क्यों होगा? क्या यह एक बेवकूफ विचार है या क्या YAML बस बहुत छोटा है और वे आएंगे?

+0

मुझे यकीन नहीं है कि आप क्या देख रहे हैं ...? वाईएएमएल से मंच विशिष्ट मॉडल (कई [विकीपीडिया] (http://en.wikipedia.org/wiki/YAML) पर सूचीबद्ध कई पुस्तकालयों में कनवर्ट करने के लिए बहुत सारे पुस्तकालय हैं। उन मॉडलों से, आप मोंगोडीबी के स्टोर और क्वेरी/आदि के लिए कई प्लेटफ़ॉर्म ड्राइवरों में से एक का उपयोग कर सकते हैं। – WiredPrairie

+0

मुझे वाईएएमएल फाइलों को आयात करने में बहुत दिलचस्पी नहीं है, बल्कि वाईएएमएल के समान डेटा मॉडल वाला डाटाबेस है। मैंने इसे स्पष्ट करने के लिए प्रश्न अपडेट किया। – mb21

+0

दस्तावेजों के "दर्जनों" डेटाबेस और "वाईएएमएल" डेटाबेस के कई दर्जनों दस्तावेज़ों में से किसी के बीच क्या अंतर है जो आप प्रस्तावित कर रहे हैं? – WiredPrairie

उत्तर

2

Yaml बल्कि कॉन्फ़िगर उद्देश्यों के लिए उपयोग किया जाता है। इसका उपयोग मोंगोडीबी जैसे डेटाबेस के लिए नहीं किया जाता है क्योंकि क्रमिकरण json से अधिक समय लेता है। वास्तव में, जेसन यमल का उप-समूह नहीं है (हालांकि यह करीब है)। Json पुस्तकालय आमतौर पर तेज़ होते हैं: stackoverflow.com/questions/2451732/ ...।

यदि इंटरऑपरेबिलिटी और गति चिंता का विषय है, तो JSON का उपयोग करें। - Erik Aronesty

+0

आपके पाठ के बारे में कोई भी संदर्भ हमेशा सराहना करता है। – DontVoteMeDown

+7

मानव के इनपुट और पढ़ने के लिए वाईएएमएल बहुत तेज़ है। भले ही इसे क्रमबद्ध करने में कुछ धीमा हो, फिर भी मानव समय की तुलना में मशीन का समय बहुत सस्ता है। आगे जेएसओएन और मोंगोडीबी संदर्भों का समर्थन नहीं करते हैं, एक महत्वपूर्ण कमी। कभी-कभी प्रसंस्करण गति महत्वपूर्ण बात नहीं है जिसे आप प्राथमिकता देना चाहते हैं; कभी-कभी विकास की गति और ग्राहक पारदर्शिता बहुत अधिक महत्वपूर्ण होती है। – CommaToast

+0

@ कॉमाटास्ट, आप इस मुद्दे के बारे में ठीक से सोच नहीं रहे हैं, आपकी नो-ऑप्स मानसिकता सिस्टम चिंताओं को नजरअंदाज करती है। असली दुनिया में, आप अपनी मानसिकता लेते हैं और शुद्ध कचरा लिखते हैं और उम्मीद करते हैं कि यह काफी अच्छा हो .... यदि आपने डीबी के अंदर वाईएएमएल का इस्तेमाल किया है, तो यह अब तक किसी भी खिंचाव से पर्याप्त नहीं होगा। क्यूं कर? चूंकि सिस्टम्स प्रोग्रामिंग किसी कारण से मौजूद है, और वेब डेवलपमेंट मानसिकता 180 है जो अच्छे सिस्टम की तरह काम करती है। अन्यथा हम रूबी में हमारे कर्नल लिखेंगे, हम बहुत अच्छे कारण के लिए नहीं हैं। आप दोनों देवताओं और अच्छी तरह से इंजीनियर के लिए आसान कर सकते हैं ... लेकिन आपने इसे अभी तक नहीं बनाया है। – TechZilla

1

या वहां मोंगो डीबी की तरह कुछ करने के लिए YAML से एक नक्शाकार मुझे पारदर्शी रूप से एक YAML दुकान के रूप में उपयोग करने देता है?

जहां तक ​​मुझे पता है सीधे नहीं।

मुख्य समस्या यह प्रतीत होती है कि मोंगो डीबी का इंटरफ़ेस हैश (यानी कुंजी-मूल्य जोड़े) पर आधारित है। तो संक्षेप में आप पूछ रहे हैं कि वाईएएमएल से हैश तक मैपर है या नहीं। जवाब सिर्फ इसलिए नहीं है क्योंकि वाईएएमएल अनियंत्रित संरचनाओं को स्टोर कर सकता है जबकि हैश नहीं कर सकता है।

लेकिन अगर आप अपनी वस्तुओं को आसान बनाने के लिए तैयार हैं, तो आप आंशिक रूप से करने के लिए इस सक्षम हो सकता है:

class SomeObject 
    def initialize 
    @bob = 'abc' 
    @fred = 'cde' 
    end 

    def to_hash 
    h = {} 
    instance_variables.sort.each do |v| 
    h[v] = instance_variable_get(v) 
    end 
    return h 
end 

आप to_yaml कोड को देखो, तो आप देखेंगे कि यह बहुत to_hash विधि के समान है (क्योंकि वह जगह है जहां मुझे विचार मिला)।

नोट आपको शायद एक से_शैश विधि की भी आवश्यकता होगी।

include Mongo 
db = MongoClient.new.db('test') 
stuff = db.collection('stuff') 
item = SomeClass.new() 
... other code ... 
stuff.insert(item.to_hash) 

मैं: और आप शायद

अब मोंगो कोड आइटम डालने के लिए उदाहरण चर है कि वस्तुओं (यानी न सिर्फ स्ट्रिंग्स, प्रतीकों, आदि) के साथ वर्गों के लिए एक योजना बाहर काम शुरू करना चाहते हैं महसूस करें कि यह सीधे आपके प्रश्न का उत्तर नहीं देता है, लेकिन उम्मीद है कि यह अभी भी मदद करता है।

जॉन