value • Query on any field • Very structured schema (tables) • In-place updates • Normalization requires many tables, joins, indexes • Poor data locality Primary Key
many or embedded values • Query on any field & level • Flexible schema • Inline updates • Embedding related data has optimal data locality, requires fewer indexes, has better performance _id
can evolve easily – Projects can adapt to changes quickly • Intuitive, natural data representation – Developers are more productive – Many types of applications are a good fit • Reduces the need for joins, disks seeks – Programing is more simple – Performance can be delivered at scale