IoT sample database — MongoDB, flat (1,127,398 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 iot --collection <name> --file <name>.ndjson

Collections:
  actuator_commands — 10,000 documents
  actuators — 500 documents
  alarm_rules — 2,000 documents
  alarms — 5,000 documents
  api_keys — 60 documents
  audit_logs — 10,000 documents
  billing_plans — 4 documents
  device_configurations — 3,000 documents
  device_geofences — 1,000 documents
  device_group_members — 800 documents
  device_groups — 60 documents
  device_metrics — 50,000 documents
  device_types — 10 documents
  devices — 1,000 documents
  error_logs — 10,000 documents
  firmware_deployments — 4,000 documents
  firmware_releases — 40 documents
  gateway_devices — 1,000 documents
  gateways — 80 documents
  geofences — 40 documents
  locations — 100 documents
  maintenance_logs — 2,000 documents
  network_connections — 10,000 documents
  networks — 60 documents
  notifications — 10,000 documents
  organizations — 20 documents
  roles — 4 documents
  sensors — 2,000 documents
  subscriptions — 20 documents
  support_tickets — 1,000 documents
  telemetry_data — 1,000,000 documents
  ticket_replies — 3,000 documents
  user_roles — 300 documents
  users — 300 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.
