Return every compound with a 1H spectrum run in DMSO that contains a signal recorded as a dd, with its name and formula, sorted by name. The document nests spectrum → ranges → signals, so the condition crosses three arrays, and both halves must hold on the same spectrum. $elemMatch is what keeps them together: two separate conditions would accept a DMSO spectrum and a dd in a different one. Four compounds answer this — the SQL twin is the four-join walk you wrote for the dd exercise, plus a solvent filter.
A advanced exercise, answered in Mango. It is marked by the rows your query returns rather than by how you wrote it, with 3 hints if you want them.
Ask the same question of a chemical dataset in SQL and in Mango and compare the two answers. The database is a SQLite file your browser downloads once and queries locally, so nothing you write ever leaves your machine — which is also why the tool needs JavaScript.