def ElemMatch(q, *conditions):
    """
    The ElemMatch operator matches documents that contain an array field with at
    least one element that matches all the specified query criteria.
    """
    new_condition = {}
    for condition in conditions:
        deep_merge(condition.to_dict(), new_condition)

    return Condition(q._path, new_condition, '$elemMatch')