This post extends from a summary of a video + e.g. + criteria.
See here (cn) for detailed situatoins & examples regarding usecase.

Traditional Relational DBs

Mysql, PostgreSQL, SQLite, Amazon Redshift, Amazon Aurora.

Why

Too much data. Too expensive to store in one computer.
Need distributed DB.
However, relationship DBs (SQL) are not designed and not suitable for this situation.

What

Thus, NoSQL occured, with several types.

key-value DB

Memcached, Redis, Oracle NoSQL, dbm, Amazon SimpleDB, Microsoft Azure's Table, more.
key value

column-family (column-oriented / wide-column) DBs (key-value model but with two levels of nesting)

HBase, Cassandra (by Facebook), Google Bigtable, more.
HBase is a free and open source implementation of Google's BigTable.
column

object-based storage devices (OSD)

Amazon S3, Scality, Ceph, LizardFS (mooseFS), SwiftStack, IBM Spectrum Scale (a.k.a. GPFS), GlusterFS (inability to scale).
See alternatives on wiki.
See also Distributed File Systems (DFS).

document DBs (JSON, XML, etc.)

MongoDB (BSON /ˈbiːsɒn/ format), Amazon DynamoDB, more.
Those DBs can be used for full-text DBs.
document

graph DBs

Neo4j, more.
graph db

time series DBs

InfluxDB, RRDtool, more.

search engines

Elasticsearch, Amazon CloudSearch, more.

other types no-SQL DB

See more categories on DB Engines ranking.
Also: wikipedia NoSQL

When

situation 1: too much data

situation 2: rapid changed development

when to use nosql

Criteria for Choice

See techtarget article.

Trend

See also top DB and their trend.

Ref's

Examples come from kdnuggets & the above techtarget article.
graph database (Chinese)