-1

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

我已经像这样声明了一个数据库文档:

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 或 primary_key 要求。

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

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

4

1 回答 1

1

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

于 2013-11-07T23:44:10.283 回答