There seem to be no precise definitions available in the course or in the mongo documentation for the rather difficult concepts of pipeline, stage, operator, or expression. For example, ‘stage’ seems to be used ambiguously meaning : 1. an aggregation operator itself, to be found in the list of ‘stages’, 2. the stage as an element in a pipeline array, which includes the arguments applied to the aggregation operator, 3. as the index - value occurrence of an array element at a particular location in the pipeline, since naming the operator does not uniquely select a pipeline stage. I am having trouble understanding this material. To understand, I think I will have to try to create definitions for these concepts, and then check if they are correct with the mongo experts. (A formal grammar and semantics would help too).
And here is what a definition is in science and dictionaries: A definition relates a term to be defined (the definiendum) and a predicate (the definiens), such that using the definiendum is equivalent to applying the definiens predicate. For example, (a bottle- definiendum) (is a type of vessel intended to hold a liquid - definiens). An organic compound is a chemical compound that contains carbon. In the definiens, there is always some more general term (vessel, chemical compound), a relation between the more general term and the definiens (is a type of, is an example of, is a group of, is a part of, is a role of …) followed by a ‘that’ constraint. For example, a pride (is a group of - relation) (lions - more general term) that form an extended family unit (constraint). When you define like this, it is easy to determine what the definiendum applies to.