@classmethod
def near(cls, collection, latitude, longitude, index_id, distance=None,
    skip=None, limit=None):
    """
            The default will find at most 100 documents near the given coordinate.
            The returned list is sorted according to the distance, with the nearest document being first in the list.
            If there are near documents of equal distance, documents are chosen randomly from this set until
            the limit is reached.

            In order to use the near operator, a geo index must be defined for the collection.
            This index also defines which attribute holds the coordinates for the document.
            If you have more then one geo-spatial index, you can use the geo field to select a particular index.

            :param collection Collection instance
            :param latitude The latitude of the coordinate
            :param longitude The longitude of the coordinate
            :param index_id ID of the index which should be used for the query

            :param distance If given, the attribute key used to return the distance to the given coordinate.
            If specified, distances are returned in meters.

            :param skip  The number of documents to skip in the query
            :param limit The maximal amount of documents to return. The skip is applied before the limit restriction.

            :returns Document list
        """
    kwargs = {'geo': index_id, 'latitude': latitude, 'longitude': longitude,
        'distance': distance, 'skip': skip, 'limit': limit}
    return cls._construct_query(name='near', collection=collection,
        multiple=True, **kwargs)
