After 40 years of relational databases and of cohabitation between flat tables and object-oriented programming, a new generation of data stores is emerging. Sometimes referred to as NoSQL, this new generation supports hierarchical, heterogeneous data such as XML, JavaScript Object Notation, and Binary JSON. While the abstract querying primitives of the relational algebra (join, selection, projection, and so on) also make a lot of sense in the NoSQL world, a need exists for a tailor-made language for querying hierarchical, heterogeneous datasets. This article briefly summarizes the history of databases, then describes the JSONiq language. JSONiq was designed from the ground up to support JSON data and run against all JSON- or BSON-based data stores, turning them into full-fledged databases.