Music streaming sample database — MongoDB, flat (1,761,995 rows)

A collection per table. Each primary key is the document _id; foreign keys are fields under their own names, so the SQL version's joins become $lookup stages.

Load it:
  sh import.sh                    (into mongodb://localhost:27017)
  sh import.sh "<connection string>"

Or one collection at a time: mongoimport --db music-streaming --collection <name> --file <name>.ndjson

Collections:
  ad_campaigns — 30 documents
  ad_impressions — 80,000 documents
  advertisements — 120 documents
  album_artists — 2,500 documents
  albums — 2,000 documents
  alternative_genres — 20 documents
  artist_follows — 30,000 documents
  artist_socials — 1,000 documents
  artists — 1,000 documents
  audio_features — 20,000 documents
  devices — 30,000 documents
  episode_history — 50,000 documents
  genres — 24 documents
  listening_history — 1,000,000 documents
  lyrics — 12,000 documents
  offline_downloads — 20,000 documents
  payment_transactions — 40,000 documents
  playlist_tracks — 60,000 documents
  playlists — 6,000 documents
  podcast_episodes — 6,000 documents
  podcast_subscriptions — 10,000 documents
  podcasts — 300 documents
  recommendation_tracks — 100,000 documents
  recommendations — 20,000 documents
  search_queries — 50,000 documents
  subscription_tiers — 1 documents
  track_artists — 24,000 documents
  track_comments — 10,000 documents
  track_genres — 25,000 documents
  track_likes — 80,000 documents
  tracks — 20,000 documents
  user_follows — 30,000 documents
  user_subscriptions — 12,000 documents
  users — 20,000 documents

Types: numeric columns are Decimal128, so totals stay exact; dates and timestamps are
Date values read as UTC (the data has no time zone); times and UUIDs are strings;
JSON columns are embedded objects.

Synthetic data, CC0-1.0, from databasesample.com. The same rows as the SQL and CSV files.
