2012-04-20 7 views
9

के लिए लाइटवेट मोंगोब ओडीएम/ओआरएम मैं मोंडोडीबी पायथन ओडीएम/ओआरएम की तलाश में हूं जो दो दुनिया से सर्वश्रेष्ठ लेता है: ओडीएम/ओआरएम & अल्ट्रा फास्ट डायरेक्ट डिक्शनरी पढ़ा जाता है।पाइथन

दूसरे शब्दों पैकेज निम्न आवश्यकताओं का अनुपालन करेगा में:

  1. को परिभाषित करने और स्कीमा लागू करने के लिए अनुमति देता है।
  2. फ़ील्ड को सत्यापित करने की अनुमति देता है।
  3. सीधे मोंगोडब (कोई ओडीएम/ओआरएम ओवरहेड) से ऑब्जेक्ट्स पढ़ने की अनुमति देता है।
    • ओमएम/ओआरएम परत (डब्ल्यू/ओ अतिरिक्त प्रश्नों) का उपयोग करके सीधे पिमोंगो द्वारा लौटाए गए संग्रह/ऑब्जेक्ट्स का उपयोग किया जा सकता है।
    • मैं कल्पना करता हूं कि कुछ प्रकार के आलसी क्षेत्र को पिमोंगो ड्राइवर द्वारा ऑब्जेक्ट्स में जोड़ा जाता है जो ओआरएम रस तक पहुंच प्रदान करता है (पिमोंगो ऐसे एक्सटेंशन के लिए अनुमति देता है)।
    • कल्पना कीजिए उपयोग के मामले:
      • तेजी से पढ़ने के लिए हम ड्राइवर पर सीधे जाने के लिए,
      • डेटा प्रविष्टि के लिए हम का उपयोग पूर्ण ODM/ORM कार्यक्षमता
  4. Geofields समर्थन
  5. GridFS के समर्थन सामान्य फाइलें और छवियां
  6. डीबीआरआईफ़ समर्थन
  7. किसी भी छिपाई को लागू नहीं करता है डेन, फ्रेमवर्क विशिष्ट फ़ील्ड
  8. फ्लास्क के साथ काम करेगा :)
  9. फॉर्म रूपरेखा है।
    • फार्म उप-सूचियों/subdicts कवर
    • बैकबोन आधारित रूपों सिर्फ भयानक होगा

मुझे पता है कि मैं के लिए पूछ रहा हूँ अजगर परिभाषा के आधार पर रीढ़ की हड्डी मॉडल, संग्रह, प्रमाणकों बनाता है बहुत कुछ है लेकिन यह कुछ ऐसा करने के लिए कमाल नहीं होगा :)

वास्तव में प्रश्न में फिर से लिखा जा सकता है: "जो अस्तित्व में है पायथन मोंगोब ओडीएम/ओआरएम (मोंगोकिट, मोंगोइंजिन) को आसानी से इस तरह से बढ़ाया जा सकता है। "

उत्तर

3

ठीक है अगर आप एक ओआरएम का सिद्धांत लेते हैं जो आपको चाहिए वह ओआरएम नहीं है, क्योंकि मोंगोडीबी एक रिलेशनल डेटाबेस नहीं है, इसलिए संस्थाओं को रिलेशनल करने के लिए कोई मैपिंग नहीं है।

मुझे लगता है कि आपको this post का उत्तर जांचने के लिए जरूरी सिफारिशों को गीला करने के लिए जरूरी है, मैं व्यक्तिगत रूप से मोंगो और पायथन दोनों की "प्रकृति" के कारण मोंगोडीबी + पायथन का उपयोग करता हूं।

आसपास देखकर मुझे यह पुस्तकालय मिला जो mongoEngine आपकी मदद कर सकता है। Django ओआरएम की तरह है। आपको इसे देखना चाहिए।

+0

विवरण में खुदाई नहीं करना mongo संदर्भों का समर्थन करता है, इसलिए हमारे पास संबंधपरक डेटाबेस का एक बहुत ही मूल सबसेट है। शुद्धता के लिए हम ओडीएम/ओआरएम द्वारा संदर्भित कर सकते हैं। पिमोंगो तक सीधी पहुंच बहुत ठीक है। मैं थोड़ी देर के लिए उस तरह से eloping कर रहा हूँ। MongoEngine बहुत भारी है। MongoKit के लिए वही। वे ठीक होंगे अगर केवल मुझे पहले से लोड की गई सूची पर उनका उपयोग करने का कोई तरीका मिल सके। बीटीडब्ल्यू: http://packages.python.org/micromongo/ खराब नहीं है हालांकि अभी भी वह चीज़ नहीं है जिसे मैं ढूंढ रहा हूं। – Munhitsu

+0

ठीक है, जब आप ओआरएम या ओडीएम का उपयोग करते हैं तो आप जानते हैं कि सीधे डीबी कनेक्शन का उपयोग करने के रूप में उतना प्रकाश नहीं होगा। तो, आपके लिए मेरी सिफारिश सीधे पाइथन से उपयोग करना है, आपने कहा कि यह कितना अच्छा है और बस काम करता है। – Omar

6

सबसे पहले मुझे यह भी पसंद है।

अपना शोध

मिंग के आधार पर एक बहुत ही होनहार मोंगो ODM ड्राइवर है: http://merciless.sourceforge.net/

MongoEngine अपनी आवश्यकताओं/USECASE के लिए यह अनुकूल करने के लिए बहुत बड़ा है। MongoKit के लिए वही। http://packages.python.org/micromongo

एक अच्छा प्रारंभिक बिंदु हो सकता है:

micromongo में कुछ उम्मीद नहीं है।

बीटीडब्लू: हमम ... मुझे नहीं पता कि आप क्या लिख ​​रहे हैं लेकिन फॉर्म और सत्यापनकर्ताओं को कवर करने से आप आसानी से व्यवस्थापक इंटरफ़ेस बना सकते हैं और अगली पीढ़ी Django होने वाले अंत तक बना सकते हैं। सौभाग्य!

+0

स्पष्ट रूप से, माइक्रोमैन्गो 2012 से नहीं चले गए हैं। हालांकि, एक नया ओडीएम आ रहा है: [umongo] (http://umongo.readthedocs.io/en/latest/)। यह प्रश्न में आवश्यकतानुसार पूर्ण रूप से प्रदर्शित नहीं है, लेकिन यह मोंगोइंजिन से सरल होना है, ताकि आप इसे अधिक आसानी से बना सकें। –

1

umongo उस प्रश्न के बाद लंबे समय से पैदा हुआ था। हालांकि अपेक्षाकृत युवा, यह परिपक्वता प्राप्त कर रहा है। माइक्रोमैन्गो की तरह, इसका लक्ष्य सरल होना चाहिए ("यू" μ/micro के लिए खड़ा है), इसलिए यह प्रश्न में अनुरोध की गई कई सुविधाएं प्रदान नहीं करता है, लेकिन यह निर्माण करने के लिए एक आधार आधार होना है।

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

चूंकि आपके पास संग्रह तक सीधे पहुंच है, इसलिए आप सादे पिमोंगो प्रश्नों का उपयोग कर सकते हैं।

इसके अलावा, यह न केवल पिमोंगो के साथ बल्कि एसिंक ड्राइवरों के साथ भी संगत है।