Hotel reservation sample database — MongoDB, embedded (2,809,350 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 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_orders — 100,000 documents, each with its dining_order_items
  employees — 800 documents
  feedback — 100,000 documents
  guests — 120,000 documents, each with its guest_event_participation
  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_types — 8 documents
  rooms — 1,000 documents, each with its room_amenities, its room_inventory
  service_usage — 1,000,000 documents
  services — 16 documents
  suppliers — 40 documents
  vehicle_rentals — 6,000 documents

Folded in (no collection of their own):
  dining_order_items — 400,000 rows, as the "dining_order_items" array on dining_orders (its order_id is the parent's _id)
  guest_event_participation — 20,000 rows, as the "guest_event_participation" array on guests (its guest_id is the parent's _id)
  room_amenities — 4,000 rows, as the "room_amenities" array on rooms (its room_id is the parent's _id)
  room_inventory — 6,000 rows, as the "room_inventory" array on rooms (its room_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.
