@classmethod
def find_one(cls, spec_or_id=None, *args, **kwargs):
    """Find a document with the given ObjectID `spec_or_id`. You can pass
        an ObjectId in and it'll auto-search on the _id field.

        Like :py:meth:`Collection.find_one <pymongo.collection.Collection.find_one>`
        """
    if 'spec' in kwargs:
        kwargs['spec'] = cls.map_search_dict(kwargs['spec'])
    args = list(args)
    if len(args):
        args[0] = cls.map_search_dict(args[0])
    collection = cls._dbcollection
    if spec_or_id is not None and not isinstance(spec_or_id, dict):
        spec_or_id = {'_id': spec_or_id}
    for result in cls.find(spec_or_id, *args, **kwargs).limit(-1):
        return result
    return None
