A document is a set of key value pairs, where values can be strings, numbers, arrays, or other nested documents. A product record might hold its name, price, an array of tags, and an embedded object for shipping dimensions, all in one place. Documents that describe the same kind of thing are grouped into a collection, which is the rough equivalent of a table.
The defining feature is that there is no fixed schema enforced across a collection. One user document can have a phone field, the next can skip it and add a list of saved addresses instead. The database does not reject that. The structure lives in the document, not in a central table definition you have to migrate.
This maps closely to how objects look in application code. A JavaScript object or a Python dict serializes almost directly into a document, so you avoid the translation layer that relational databases need between rows and objects.