MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Mongoengine में मूल्य के रूप में कुंजी का उपयोग करना

क्या आपने Mongoengine का उपयोग करने के बजाय सीधे PyMongo का उपयोग करने पर विचार किया है? Mongoengine को आपके दस्तावेज़ों के लिए एक स्कीमा घोषित करने और मान्य करने के लिए डिज़ाइन किया गया है, और इसके आसपास कई उपकरण और सुविधाएं प्रदान करता है। यदि आपके दस्तावेज़ अलग-अलग होने वाले हैं, तो मुझे यकीन नहीं है कि Mongoengine आपके लिए सही विकल्प है।

यदि, हालांकि, आपके पास सभी दस्तावेज़ों में कुछ फ़ील्ड समान हैं, और फिर प्रत्येक दस्तावेज़ में अपने लिए विशिष्ट फ़ील्ड का कुछ सेट है, तो आप Mongoengine के DictField का उपयोग कर सकते हैं . इसका नकारात्मक पक्ष यह है कि चाबियाँ "शीर्ष-स्तर" नहीं होंगी, उदाहरण के लिए:

class UserThings(Document):
    # you can look this document up by username
    username = StringField()

    # you can store whatever you want here
    things = DictField()

dcrosta_things = UserThings(username='dcrosta')
dcrosta_things.things['foo'] = 'bar'
dcrosta_things.things['bad'] = 'quack'
dcrosta_things.save()

MongoDB दस्तावेज़ में परिणाम जैसे:

{ _id: ObjectId(...),
  _types: ["UserThings"],
  _cls: "UserThings",
  username: "dcrosta",
  things: {
    foo: "bar",
    baz: "quack"
  }
}

संपादित करें: मुझे यह भी ध्यान रखना चाहिए, "गतिशील" दस्तावेज़ों के लिए मोंगोइंजिन की विकास शाखा पर कार्य प्रगति पर है, जहां मॉडल सहेजे जाने पर पायथन दस्तावेज़ उदाहरणों पर विशेषताओं को सहेजा जाएगा। देखें https://github.com/hmarr/mongoengine/pull/112 विवरण और इतिहास के लिए।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में एक साथ कई दस्तावेज़ अद्यतन कर रहा है

  2. विंडोज़ में डॉकटर कंटेनर को कैसे सीड करें

  3. मोंगो संग्रह में उप-दस्तावेज़ सरणी के पृष्ठांकित/कटा हुआ डेटा कैसे प्राप्त करें?

  4. मोंगोडब कई समूह क्षेत्रों के साथ अलग है

  5. क्लस्टर नियंत्रण के साथ MongoDB 4.0 की निगरानी और संचालन प्रबंधन