Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask mongoengine和文档不接受唯一或主键参数_Python_Mongoengine_Flask Mongoengine - Fatal编程技术网

Python flask mongoengine和文档不接受唯一或主键参数

Python flask mongoengine和文档不接受唯一或主键参数,python,mongoengine,flask-mongoengine,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.DateTi

我正在试用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,甚至不会承认我已经输入了唯一的或主要的_密钥要求

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上的要求似乎被忽略。不确定我是遇到了错误还是只是做错了什么?

如果集合还不存在,Mongoengine必须创建索引
Mongoengine
不考虑数据迁移。所以,若您首先创建了并没有索引的集合,然后在模型中描述索引,那个么索引不会自动创建。对于您的情况,您必须手动创建索引,或者仅当不需要数据时,才尝试删除您的
编号
集合

看起来您没有唯一索引。你能显示什么打印
db.numbers.getIndexes()我得到了getIndexes()的空列表。mongoengine不是根据定义为我创建索引吗?我想到了这一点,我经历了几次迭代,尝试只使用unique,或者只使用primary_键,每次我都删除集合以便它再次构建它,但它仍然不会为我创建新的索引。我还发现了另一个引用,其中包含一个用于声明索引的元标记,但这似乎也不起作用。我想知道我正在使用的mongohq db是否可能不允许我进行创建?