web-dev-qa-db-ja.com

PyMongoは2つ以上のフィールドを持つ一意のインデックスを作成します

一緒に一意になるように、2つのフィールドを持つpymongoでインデックスを作成するにはどうすればよいですか?

私はこのコードを持っています:

self.db[self.mongo_collection].create_index("url", unique=True)

urlcategoryで一意である必要があります。

14
Mirza Delic

documentation で説明されているように、複合インデックスを作成し、uniqueTrueに設定する必要があります。

複合インデックスに一意制約を使用すると、MongoDBは、キーの一部またはすべての値の個別の値ではなく、値の組み合わせに一意性を適用します。

self.db[self.mongo_collection].create_index(
    [("url", pymongo.DESCENDING), ("category", pymongo.ASCENDING)],
    unique=True
)
23
styvane