mongoengine - 忽略模式验证的额外字段

And*_*rew 28 mongodb database-schema mongoengine

我正在尝试查询我的数据库.某些记录当前有额外的字段未包含在我的模型模式中(错误,但我想处理这些情况).当我尝试查询数据库并将记录转换为模式时,我收到以下错误:

FieldDoesNotExist
The field 'X' does not exist on the document 'Y'
Run Code Online (Sandbox Code Playgroud)

由于数据库中的额外字段与架构不同.

有没有办法忽略mongoengine中额外字段的模式验证?

JFa*_*thi 38

要在数据加载时有额外字段时忽略此错误,strictFalse在元字典中设置.

class User(Document):
    email = StringField(required=True, unique=True)
    password = StringField()
    meta = {'strict': False}
Run Code Online (Sandbox Code Playgroud)


typ*_*tch 7

我相信您在定义模型时要使用DynamicDocument而不是Document,这将使db模式中的其他字段被忽略。

  • 那么,在 @JFathi 的元数据中使用 *strict* 和 DynamicDocument 之间有什么区别? (7认同)