【发布时间】:2020-05-31 12:10:35
【问题描述】:
我正在使用flask-mongoalchemy做一个演示,这里有个问题让我困惑了一段时间。 一开始我创建了一个用户类
class Student(db.Document):
'''student info'''
name = db.StringField()
grade = db.IntField(required=False, default=None)
然后,我用这个数据库创建了一些例子,比如student1,student2……等等。 现在,我将 Grade 的默认值从 None 更改为 0
grade = db.IntField(required=False, default=0)
当我再次运行查询时,它会引发错误:
mongoalchemy.exceptions.BadValueException: Bad value for field of type "grade". Reason: "Value is not an instance of <class 'int'>
SO,如何自动更新此字段更改?我现在所做的是手动修改数据库中年龄的值。
【问题讨论】:
-
您可以手动删除
student集合并重新构建吗?或者在 mongo shell 中运行更新查询来设置grade=0 -
@Valijon 更新操作可以改变表默认值吗?
-
如果表格符合要求可以更改。在您的情况下,也许一旦您创建了
student集合,MongoDB 就会创建 $jsonSchema 进行验证。检查它:db.getCollectionInfos({name: "student"})
标签: mongodb flask flask-sqlalchemy pymongo mongoalchemy