Language learning app sample database — MongoDB, embedded (1,930,044 rows)

Tables that belong to another are folded into it as arrays, so the documents read the way the application uses them. The rest are collections of their own, joined by key as in the flat version.

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
  exercises — 3,600 documents, each with its exercise_options
  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
  users — 125,000 documents, each with its user_achievements, its user_profiles, its user_progress, its user_quiz_results
  vocabulary — 4,000 documents

Folded in (no collection of their own):
  exercise_options — 14,400 rows, as the "exercise_options" array on exercises (its exercise_id is the parent's _id)
  user_achievements — 125,000 rows, as the "user_achievements" array on users (its user_id is the parent's _id)
  user_profiles — 125,000 rows, as the "user_profiles" array on users (its user_id is the parent's _id)
  user_progress — 1,000,000 rows, as the "user_progress" array on users (its user_id is the parent's _id)
  user_quiz_results — 150,000 rows, as the "user_quiz_results" array on users (its user_id is the parent's _id)

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.
