human hand off fix

This commit is contained in:
debu-2 2026-10-06 07:20:02 +05:30
parent 7b39f956e6
commit e72f63dc54

View file

@ -42,21 +42,22 @@ async def ensure_mongo_index(collection, keys, **options) -> None:
desired_unique = bool(options.get("unique"))
desired_sparse = bool(options.get("sparse"))
async for index in collection.list_indexes():
if index["name"] == "_id_":
continue
index_key = list(index["key"].items())
same_key = index_key == key_list
same_name = index["name"] == name
if not same_key and not same_name:
continue
same_options = (
bool(index.get("unique")) == desired_unique
and bool(index.get("sparse")) == desired_sparse
)
if same_key and same_name and same_options:
return
await collection.drop_index(index["name"])
async with await collection.list_indexes() as cursor:
async for index in cursor:
if index["name"] == "_id_":
continue
index_key = list(index["key"].items())
same_key = index_key == key_list
same_name = index["name"] == name
if not same_key and not same_name:
continue
same_options = (
bool(index.get("unique")) == desired_unique
and bool(index.get("sparse")) == desired_sparse
)
if same_key and same_name and same_options:
return
await collection.drop_index(index["name"])
await collection.create_index(keys, **options)