在flask / mongoengine文档中添加自定义id字段

时间:2016-05-31 14:47:56

标签: flask mongoengine flask-mongoengine

我正在努力将应用程序从Django / MySQL改造为flask / mongo-engine&我在使用id字段创建模型时遇到问题。这是一个示例模型:

class Location(db.Document):
    id = db.IntField(unique=True)
    name = db.StringField(max_length=200, required=True)
    # other fields in the document ...

为了向后兼容,我要求名为as的字段id。这曾经在MySQL中正常工作,但是mongo-engine为上述模型的文档提供了ValidationError - Field is required: ['id'] Invalid Object ID: ['auto_id_0']

我也尝试使用

中的db_field参数
id = db.IntField(db_field='l_id', unique=True)

......但无济于事。

请注意,我无意覆盖mongodb的默认ObjectID字段。除了在反序列化时重命名字段外,还有其他解决方法吗?

1 个答案:

答案 0 :(得分:1)

尝试

class Location(db.Document):
    myid = db.IntField(db_field='id', unique=True)
    name = db.StringField(max_length=200, required=True)
    # other fields in the document ...

并使用它进行操作,就好像该字段名为myid一样。

Location.objects.create(myid=real_id)
Location.objects.filter(myid=real_id)