【问题标题】:How do I configure mongoDB indexes in django-nonrel without using Models?如何在不使用模型的情况下在 django-nonrel 中配置 mongoDB 索引?
【发布时间】:2012-07-05 05:51:32
【问题描述】:

我正在使用 mongodb 和 django-nonrel 构建一个站点。我在various places 中读到,对于 mongo,使用直接 pymongo 比使用 django ORM 更好。这也符合我的经验——django 的 ORM 对于关系数据库来说非常棒,但对于 pymongo 并没有提供太多功能。

我的问题是我最初不知道如何在不使用 django 的 ORM 的情况下设置数据库表(错误...“集合”)。我需要做什么才能摆脱models.py和syncdb的束缚,自己写代码?

似乎有人应该已经为此创建了指南,但我找不到。

更多细节:

现在,我正在构建模型并运行 syncdb 来配置数据库。到目前为止,django 的 ORM 魔法已经让它发挥了作用。但是我需要做一些稍微花哨的事情,比如对子元素进行索引,所以我认为 ORM 不再适合我了。

除此之外,我不会在项目的其他任何地方使用模型(除了 auth_users 和会话)。真正的模式在 json 中的其他地方定义。我不想同时维护模型类和 json 模式——这是不好的做法。

最后,我有一个“loadfixtures”管理命令,用于刷新、syncdb 和加载fixture。看来这对于新的 ORM 替换代码来说是一个非常好的地方,我只是不知道该代码应该是什么样子......

【问题讨论】:

    标签: django mongodb django-models pymongo django-nonrel


    【解决方案1】:

    使用 MongoDB,您不需要额外的步骤来预先声明 schema 以“设置”集合。 MongoDB 面向文档的特性实际上并没有强制执行严格的模式。集合中的文档可以根据需要具有不同的字段。这是一个需要习惯的不同概念,但只要您开始向其中保存数据,就会创建该集合。

    可以在集合上使用 pymongo 的 ensureIndex 添加索引。

    与插入数据时创建集合类似,添加索引时如果集合不存在也会创建。

    一篇可以帮助您入门的文章:Using MongoDB with Django

    如果您是 MongoDB 新手,您可能还想试试简短的 online tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多