我正在开发在其中使用mongodb的Django应用程序。我的数据库架构正在更改(某些字段会不断删除/添加),那么如何将其与Django集成在一起,以接受更改而又不更改旧数据,又不影响搜索查询的方式?
我搜索了可用的库,发现了以下内容:
假设我有一个名为Test的模型:
models.py
from djongo import models
class Test(models.Model):
x = models.CharField(max_length=100)
y = models.CharField(max_length=100)
我创建了一个新对象,如下所示:
{
_id: ObjectId("..."),
x: "x1",
y: "y1"
}
然后,我删除了 y 字段并添加了一个名为 z 的新字段,然后创建了一个新对象,因此它的创建如下: >
{
_id: ObjectId("..."),
x: "x2",
z: "z2"
}
现在,我要提取所有收集数据,如下所示:
python manage.py shell
>>Test.objects.all()
Error as field "y" is not exist in the model
>>Test.objects.filter(z="z2")
Error as field "y" is not exist in the model
我可以理解它无法映射到新的更改模型,但是我希望至少像以前的mongodb中的查询一样,至少无错误地忽略旧字段。
根据我的要求,使用djongo是错误的方法吗?还是有解决该问题的解决方法?如果没有,如何使用pymongo正确应用呢?我希望可以随时通过添加或删除来更改我的收集字段,并可以随时提取所有数据而不会出错。