0

MongoAlchemy を利用したモデルで名前の一意性を確保しようとしていますが、どうすればよいかわかりません。

私の最初の試みは、同じ名前の既存のデータベースエントリをnameチェックし、それらに対してチェックするラップバリデータを作成することでした (同じ名前のエントリが 0 または 1 つあることを確認するため) が、バリデータはname、オブジェクト全体ではありません(したがって、mongo_ids の比較は不可能でした)。

name1 つのクラスのすべてのオブジェクトが一意の sを持つようにする最善の方法は何ですか?

4

1 に答える 1

2

一意のインデックスを使用する必要があります。

http://www.mongoalchemy.org/api/schema/document.html#mongoalchemy.document.Index

>>> class Person(Document):
...     name = StringField()
...     name_index = Index().ascending('name').unique()

データベースが制約を強制します。mongo が既にここに持っているコードをラップするだけです:

http://docs.mongodb.org/manual/tutorial/create-a-unique-index/

于 2014-08-26T14:06:35.090 に答える