docs: def ensure(self, collection):
          ''' Call the pymongo method ``ensure_index`` on the passed collection.
  
              :param collection: the ``pymongo`` collection to ensure this index \
                      is on
          '''
          components = []
          for c in self.components:
              if isinstance(c[0], Field):
                  c = (c[0].db_field, c[1])
              components.append(c)
  
          extras = {}
          if self.__min is not None:
              extras['min'] = self.__min
          if self.__max is not None:
              extras['max'] = self.__max
          if self.__bucket_size is not None:
              extras['bucket_size'] = self.__bucket_size
          if self.__expire_after is not None:
              extras['expireAfterSeconds'] = self.__expire_after
  
          collection.ensure_index(components, unique=self.__unique,
              drop_dups=self.__drop_dups, **extras)
          return self