0

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

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

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

更详细一点:

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

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

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

4

1 回答 1

0

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

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

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

一篇可以帮助您入门的文章:将 MongoDB 与 Django 结合使用

如果您是 MongoDB 新手,您可能还想尝试简短的在线教程

于 2012-07-05T03:56:28.470 回答