(self, key_or_list, cache_for=300, **kwargs)
return None
**DEPRECATED** - Ensures that an index exists on this collection.

        .. versionchanged:: 3.0
            **DEPRECATED**
**DEPRECATED** - Ensures that an index exists on this collection.
** DEPRECATED ** - Ensures that an index exists on this collection .
def ensure_index(self, key_or_list, cache_for=300, **kwargs):
        """**DEPRECATED** - Ensures that an index exists on this collection.

        .. versionchanged:: 3.0
            **DEPRECATED**
        """
        warnings.warn("ensure_index is deprecated. Use create_index instead.",
                      DeprecationWarning, stacklevel=2)
        # The types supported by datetime.timedelta.
        if not (isinstance(cache_for, integer_types) or
                isinstance(cache_for, float)):
            raise TypeError("cache_for must be an integer or float.")

        if "drop_dups" in kwargs:
            kwargs["dropDups"] = kwargs.pop("drop_dups")

        if "bucket_size" in kwargs:
            kwargs["bucketSize"] = kwargs.pop("bucket_size")

        keys = helpers._index_list(key_or_list)
        name = kwargs.setdefault("name", helpers._gen_index_name(keys))

        # Note that there is a race condition here. One thread could
        # check if the index is cached and be preempted before creating
        # and caching the index. This means multiple threads attempting
        # to create the same index concurrently could send the index
        # to the server two or more times. This has no practical impact
        # other than wasted round trips.
        if not self.__database.client._cached(self.__database.name,
                                              self.__name, name):
            self.__create_index(keys, kwargs)
            self.__database.client._cache_index(self.__database.name,
                                                self.__name, name, cache_for)
            return name
        return None
def ensure_index ( self , key_or_list , cache_for = 300 , * * kwargs ) : warnings . warn ( "ensure_index is deprecated. Use create_index instead." , DeprecationWarning , stacklevel = 2 ) # The types supported by datetime.timedelta. if not ( isinstance ( cache_for , integer_types ) or isinstance ( cache_for , float ) ) : raise TypeError ( "cache_for must be an integer or float." ) if "drop_dups" in kwargs : kwargs [ "dropDups" ] = kwargs . pop ( "drop_dups" ) if "bucket_size" in kwargs : kwargs [ "bucketSize" ] = kwargs . pop ( "bucket_size" ) keys = helpers . _index_list ( key_or_list ) name = kwargs . setdefault ( "name" , helpers . _gen_index_name ( keys ) ) # Note that there is a race condition here. One thread could # check if the index is cached and be preempted before creating # and caching the index. This means multiple threads attempting # to create the same index concurrently could send the index # to the server two or more times. This has no practical impact # other than wasted round trips. if not self . __database . client . _cached ( self . __database . name , self . __name , name ) : self . __create_index ( keys , kwargs ) self . __database . client . _cache_index ( self . __database . name , self . __name , name , cache_for ) return name return None