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:
- 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.
- I did not exercise the POST path for adding a park.
Thanks for considering my changes.