Subscription SaaS sample database — MongoDB, flat (2,317,080 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 subscription --collection <name> --file <name>.ndjson

Collections:
  apikeys — 30,000 documents
  apirequests — 1,000,000 documents
  access_tokens — 50,000 documents
  activity_log — 100,000 documents
  audit_logs — 30,000 documents
  billing_invoices — 250,000 documents
  discounts — 8 documents
  messages — 30,000 documents
  notifications — 80,000 documents
  payment_methods — 60,000 documents
  payments — 240,000 documents
  review_comments — 10,000 documents
  roles — 4 documents
  subscription_analytics — 2,000 documents
  subscription_categories — 6 documents
  subscription_category_mapping — 14 documents
  subscription_features — 40 documents
  subscription_reviews — 10,000 documents
  subscriptions — 8 documents
  support_tickets — 10,000 documents
  system_logs — 30,000 documents
  ticket_responses — 20,000 documents
  user_addresses — 50,000 documents
  user_discounts — 15,000 documents
  user_feedback — 10,000 documents
  user_preferences — 80,000 documents
  user_profiles — 50,000 documents
  user_roles — 50,000 documents
  user_subscriptions — 60,000 documents
  users — 50,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.
