-1

私はフラスコ 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 または 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 に答える