Not sure about 'super clean'. So far ES6 classes are causing people to write lots of OO cruft resulting in [flabby code](https://github.com/zenorocha/clipboard.js/blob/master/src/clipboard.js).
e.g the `resolveOptions` method (which is public for some reason), or the weird decision to expose the defaults it uses as public.
All the cruft in that file was written to get access to the objects 'state'. Sadly it's completely stateless. The whole thing could have be rewritten much, much more cleanly as a function call.
Just going to leave this here - http://nyeggen.com/blog/2013/10/18/the-genius-and-folly-of-mongodb/. Unless you know why the downsides are worth it, make that M a PostgreSQL :) It even has JSON if that's really demanded by your use-case.
However, PEAN is a pretty horrible acronym.
Languages should have, as a minimum, the following data-structures:
Array
Map
Set
Queue
The right data-structure for the job makes your code so much cleaner and self-documenting (& better than many incompatible reimplementations).