def delete_all(self, criteria: Q = None):
        """Delete the dictionary object by its criteria"""
        if criteria:
            # Delete the object from the dictionary and return the deletion count
            items = self._filter(criteria, self.conn['data'][self.schema_name])

            # Delete all the matching identifiers
            with self.conn['lock']:
                for identifier in items:
                    self.conn['data'][self.schema_name].pop(identifier, None)

            return len(items)
        else:
            with self.conn['lock']:
                if self.schema_name in self.conn['data']:
                    del self.conn['data'][self.schema_name]
Delete the dictionary object by its criteria