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

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

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

次のようなコードがあります:

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

urlしかし、と を一意にする必要がありますcategory

ベストアンサー1

複合インデックスを作成し、前述のようuniqueに設定する必要があります。Trueドキュメンテーション:

複合インデックスで一意制約を使用する場合、MongoDB はキーのいずれかまたはすべての値の個々の値ではなく、値の組み合わせに対して一意性を強制します。

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

おすすめ記事