MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Kết hợp PostgreSQL và MongoDB (dưới dạng phụ trợ Django)

Kể từ Django 1.2, bạn có thể xác định nhiều kết nối cơ sở dữ liệu trong settings.py của mình . Sau đó, bạn có thể sử dụng bộ định tuyến cơ sở dữ liệu để cho Django biết cơ sở dữ liệu nào cần truy cập, một cách minh bạch cho ứng dụng của bạn.

Tuyên bố từ chối trách nhiệm: đây là cách tôi nghĩ nó sẽ hoạt động, tôi chưa bao giờ sử dụng MongoDB trong Django, cũng như tôi chưa kiểm tra xem mã của mình có thực sự hoạt động hay không. :)

settings.py

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

DATABASE_ROUTERS = ['path.to.ModelMetaRouter']

Mô hình

Sau đó, thêm các biến Meta tùy chỉnh vào bảng địa lý của bạn để ghi đè cơ sở dữ liệu của chúng. Không thêm thuộc tính này vào các mô hình được cho là đi đến cơ sở dữ liệu mặc định.

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

Bộ định tuyến cơ sở dữ liệu

Và viết một bộ định tuyến cơ sở dữ liệu để điều hướng tất cả các mô hình có using tập hợp thuộc tính meta, với kết nối thích hợp:

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. Lưu trữ hình ảnh trong cơ sở dữ liệu MongoDB

  2. Cách khôi phục một bộ sưu tập cụ thể trong MongoDB bằng cách sử dụng sao lưu logic

  3. 10 nền tảng lưu trữ MongoDB tốt nhất

  4. Cách quản lý tài liệu trong MongoDB

  5. Xóa tất cả các trường rỗng