My attempt to contribute

Many of the changes are for readability and are not substantive.  The code is best compared with a tool that can ignore whitespace changes (tabs were negatively impacting alignment).

There is one very substantive change: This code creates (ensures) a 2dsphere index and uses it.  This is a move away from giving the user the flexibility of creating either a 2d OR a 2dsphere index.  I think this change makes it easier to get up and going, but that's just my opinion.  Feel free to discard all the changes including this one as I may have moved the code away from the original intent.  The code works for me when I exercise all the different REST GET paths, so I think it is all pretty reasonable.

Warnings:
1.  I had to slightly modify server.js to work in my environment (I'm not on OpenShift).  That means that I had to edit the file after testing to put back your initialization code.  I could have fat fingered something in that process, and I would not know it.
2.  I did not exercise the POST path for adding a park.

Thanks for considering my changes.