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

PostgreSQL और MongoDB का मिश्रण (Django बैकएंड के रूप में)

Django 1.2 के बाद से, आप अपने settings.py . में एकाधिक डेटाबेस कनेक्शन परिभाषित कर सकते हैं . तब आप डेटाबेस राउटर का उपयोग कर सकते हैं Django को यह बताने के लिए कि आपके आवेदन के लिए पारदर्शी रूप से किस डेटाबेस में जाना है।

अस्वीकरण: मैं इस तरह से सोचता हूं यह काम करना चाहिए, मैंने कभी भी Django में MongoDB का उपयोग नहीं किया है, न ही मैंने परीक्षण किया है कि मेरा कोड वास्तव में काम करता है। :)

सेटिंग्स.py

DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine',
        'NAME': 'mydata',
        ...
    }
    'geodata' {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'geodata',
        ...
    }
}

DATABASE_ROUTERS = ['path.to.ModelMetaRouter']

मॉडल

फिर अपने डेटाबेस को ओवरराइड करने के लिए, अपने भू-तालिकाओं में कस्टम मेटा चर जोड़ें। इस विशेषता को उन मॉडलों में न जोड़ें जिन्हें डिफ़ॉल्ट डेटाबेस में जाना है।

class SomeGeoModel(models.Model):
    ...
    class Meta:
        using = 'geodata'

डेटाबेस राउटर

और उन सभी मॉडलों को निर्देशित करने के लिए डेटाबेस राउटर लिखें जिनमें using . है उपयुक्त कनेक्शन के लिए मेटा विशेषता सेट:

class ModelMetaRouter(object):
    def db_for_read(self, model, **hints):
        return getattr(model._meta, 'using', None)

    def db_for_write(self, model, **hints):
        return getattr(model._meta, 'using', None)

    def allow_relation(self, obj1, obj2, **hints):
        # only allow relations within a single database
        if getattr(obj1._meta, 'using', None) == getattr(obj2._meta, 'using', None):
            return True
        return None

    def allow_syncdb(self, db, model):
        if db == getattr(model._meta, 'using', 'default'):
            return True
        return None


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी $acos

  2. मूल MongoDB कमांड क्या हैं और उनका उपयोग कैसे करें?

  3. SQL में किसी संख्या को प्रतिशत के रूप में प्रारूपित करें

  4. मोंगोडीबी में इंडेक्स की दिशा क्यों मायने रखती है?

  5. मोंगो में शार्किंग और प्रतिकृति के बीच अंतर क्या है?