def first(self):
        """
        Returns the first object matched or None if there is no
        matching object.
        ::
                
            >>> iterator = Host.objects.iterator()
            >>> c = iterator.filter('kali')
            >>> if c.exists():
            >>>    print(c.count())
            >>>    print(c.first())
            7
            Host(name=kali67)
        
        If results are not needed and you only 1 result, this can be called
        from the CollectionManager::
        
            >>> Host.objects.first()
            Host(name=SMC)
        
        :return: element or None
        """
        if len(self):
            self._params.update(limit=1)
            if 'filter' not in self._params:
                return list(self)[0]
            else: # Filter may not return results
                result = list(self)
                if result:
                    return result[0]