Relational databases are usually used for data storage and retrieval. They are suitable for limited data volume. But when it comes to Bigdata, we need to use more flexible databases that satisfy the need to handle semi-structured and unstructured data. These databases are called NoSQL (Not only SQL) databases. This type of database was developed to interact with data of large volumes. NoSQL databases provide many features such as scalability, availability, replication models, file sharing, and schema-free. This paper's main purpose is to present a comparative study of the five main categories of NoSQL databases; key-value stores, document stores, column family stores, graph stores databases, and object store NoSQL systems. Also, it discusses the famous database management systems for each one of these five categories. The comparison criteria used are performance, scalability, flexibility, complexity, and functionality. Moreover, this paper presents an overview of big data concepts. It briefly discusses the SQL databases versus NoSQL databases in terms of their high-level characteristics. Furthermore, this paper emphasizes the advantages and disadvantages of NoSQL databases. It illustrates the query languages in both SQL and NoSQL databases and represents the most common uses for each category to help users choose the most convenient DBMS for their organization.