code: def drop_collection(self, name_or_collection, session=None):
          
          name = name_or_collection
          if isinstance(name, Collection):
              name = name.name
  
          if not isinstance(name, string_type):
              raise TypeError("name_or_collection must be an "
                              "instance of %s" % (string_type.__name__,))
  
          self.__client._purge_index(self.__name, name)
  
          with self.__client._socket_for_writes(session) as sock_info:
              return self._command(
                  sock_info, 'drop', value=_unicode(name),
                  allowable_errors=['ns not found'],
                  write_concern=self._write_concern_for(session),
                  parse_write_concern_error=True,
                  session=session)
docs: Drop a collection.
  
          :Parameters:
            - `name_or_collection`: the name of a collection to drop or the
              collection object itself
            - `session` (optional): a
              :class:`~pymongo.client_session.ClientSession`.
  
          .. note:: The :attr:`~pymongo.database.Database.write_concern` of
             this database is automatically applied to this operation when using
             MongoDB >= 3.4.
  
          .. versionchanged:: 3.6
             Added ``session`` parameter.
  
          .. versionchanged:: 3.4
             Apply this database's write concern automatically to this operation
             when connected to MongoDB >= 3.4.