Language learning app sample database — MongoDB, flat (1,930,044 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 language-learning --collection <name> --file <name>.ndjson

Collections:
  achievements — 40 documents
  audio_resources — 900 documents
  courses — 60 documents
  exercise_options — 14,400 documents
  exercises — 3,600 documents
  forum_posts — 20,000 documents
  forums — 12 documents
  friends — 125,000 documents
  languages — 12 documents
  lessons — 900 documents
  messages — 30,000 documents
  payments — 20,000 documents
  post_replies — 40,000 documents
  pronunciation_practices — 125,000 documents
  quiz_answers — 4,800 documents
  quiz_questions — 1,200 documents
  quizzes — 120 documents
  subscriptions — 15,000 documents
  user_achievements — 125,000 documents
  user_profiles — 125,000 documents
  user_progress — 1,000,000 documents
  user_quiz_results — 150,000 documents
  users — 125,000 documents
  vocabulary — 4,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.
