An essential goal of recommendation systems is to provide users with accurate and personalized recommendations that meet their preferences. With the rapid growth of IoT-connected sensors, the availability of contextual information has increased, and this has necessitated the fast development of Context-Aware Recommendation Systems (CARS). Context-Aware recommenders are different from traditional recommenders because of their ability to predict the ratings of target users/items by exploiting the knowledge of contextual information. Context-aware recommenders define the context as any information that characterizes the situations of items and users at a particular interaction. They are essential for some contexts where prediction can be more precise in generating specific personalized recommendations. This paper provides a comprehensive review of context-based recommendation systems in IoT environments, namely IoT-CARS, and sheds light on their requirements, characteristics, and applications. We characterize context-aware recommenders in terms of the different IoT contexts and how these contexts are modeled. We also highlight the used metrics to evaluate the performance of various context-based recommenders.