从架构的角度将Mongoengine合并为Django树作为数据库后端是否可行?

时间:2016-07-01 13:49:35

标签: django mongoengine

我喜欢Django并且通常更喜欢微型框架,因此我不会重新发明自行车,而是使用电池。我主要依靠Django REST Framework来创建REST API,而不是真正使用Django的往返部分(例如模板和表单)。

但我迫切需要MongoDB支持我的项目。在许多领域,例如生物信息学,您必须使用深层嵌套的JSON。在纯Django中有两种方法可以解决这个问题:

  1. 将嵌套的JSON数据表示为关系表,这是一个巨大的浪费时间。
  2. 将JSONField用于嵌套的JSON数据 - 一个拐杖,因为您经常需要为这些JSON(您必须在应用程序级别上执行)指定模式,或者在这些JSON数据中使用超链接或其他复杂字段(这是不可能的)。
  3. 有一个非常受欢迎的库,mongoengine,严格遵循Django ORM API。我觉得它本来是Django的一部分。但是到目前为止要将它与Django一起使用,你必须自己重新实现每一点集成(身份验证,管理命令,Django REST Framework集成等)。

    所以,我想:问题是什么?为什么我们不能将Mongoengine作为另一个数据库后端一劳永逸地集成到Django中? Django已经拥有Postgres特定的字段。为什么我们不能只具有Mongo特有的?我能看到的唯一障碍是Django的架构设计,它可能对SQL-ish数据库性质有很强的假设,并且与Mongo不兼容。

    如果你擅长Django架构,你能否分享一下你对这种集成尝试可行性的考虑?

1 个答案:

答案 0 :(得分:1)

我个人认为这种方法非常有用且简单明了。你可以尝试一下:

http://django-mongodb-engine.readthedocs.io/en/latest/topics/setup.html

相关问题