Hotel reservation sample database — MongoDB, flat (2,809,350 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 hotel-reservation --collection <name> --file <name>.ndjson

Collections:
  amenities — 24 documents
  applied_promotions — 40,000 documents
  conference_room_bookings — 5,000 documents
  conference_rooms — 10 documents
  dining_order_items — 400,000 documents
  dining_orders — 100,000 documents
  employees — 800 documents
  feedback — 100,000 documents
  guest_event_participation — 20,000 documents
  guests — 120,000 documents
  hotel_branches — 12 documents
  hotel_events — 1,000 documents
  housekeeping — 350,000 documents
  inventory — 2,000 documents
  loyalty_program — 30,000 documents
  maintenance_requests — 15,000 documents
  menu_items — 40 documents
  payments — 300,000 documents
  promotions — 400 documents
  refunds — 8,000 documents
  reservations — 300,000 documents
  room_amenities — 4,000 documents
  room_inventory — 6,000 documents
  room_types — 8 documents
  rooms — 1,000 documents
  service_usage — 1,000,000 documents
  services — 16 documents
  suppliers — 40 documents
  vehicle_rentals — 6,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.
