Во-первых, чтобы заставить запросы работать как прежде, установите allow_none
option в поле на True
.
grade = db.IntField(required=False, default=0, allow_none=True)
Это должно позволить документам, не имеющим значения для оценок, не вызывать ошибки при развертывании как python объекты.
Затем выполните миграцию, которая устанавливает значение по умолчанию для документов, для которых оценка От None до 0.
from mongoalchemy.session import Session
with Session.connect('mongoalchemy') as s:
update = s.query(Student).filter(Student.grade == None).set(User.grade, 0)
update.execute()
Наконец, переключите объявление поля обратно, чтобы запретить None
значения для оценки.