def find(self, filter=None, sort=None, skip=None, limit=None,
             *args, **kwargs):
        """
        Finds all matching results

        :param query: dictionary representing the mongo query
        :return: cursor containing the search results
        """
        if self.table is None:
            self.build_table()

        if filter is None:
            result = self.table.all()
        else:
            allcond = self.parse_query(filter)

            try:
                result = self.table.search(allcond)
            except (AttributeError, TypeError):
                result = []

        result = TinyMongoCursor(
            result,
            sort=sort,
            skip=skip,
            limit=limit
        )

        return result
Finds all matching results

        :param query: dictionary representing the mongo query
        :return: cursor containing the search results