flask-mongoengine和文档不接受unique或primary_key参数

时间:2013-11-06 17:17:21

标签: python mongoengine flask-mongoengine

我正在尝试使用flask-mongoengine和mongohq,但是我很难让它正确地声明我的文件。

我已经声明了这样的db文档:

class numbers(nodb.Document):
    numbers = nodb.StringField(required=True)
    simple_date = nodb.DateTimeField(required=True, unique=True, primary_key=True)
    date = nodb.DateTimeField(default=datetime.now, required=True)

现在当我在文档中添加一个条目时,它没有接受我的_id,甚至承认我已经输入了unique或key要求。

test = numbers(
        _id=datetime.strptime(currentdate, "%m/%d/%Y").date(),
        simple_date=datetime.strptime(currentdate, "%m/%d/%Y").date(),
        numbers='12345'
    )
test.save()

现在,如果我再次执行这些行,它会在db中创建另一个相同的条目,并且对simple_date的要求似乎被忽略。不确定我是在这里遇到错误还是做错了什么?

1 个答案:

答案 0 :(得分:1)

如果收集尚不存在,

Mongoengine必须创建索引。 Mongoengine不关心数据迁移。因此,如果您最初创建没有索引的集合,然后在模型中描述索引,则索引不会自动创建。对于您的情况,您必须手动创建索引,或者在没有必要的数据时,尝试仅为开发数据库删除numbers集合