One thing that wasn’t clear enough from my previous post: the reason I ran into the “silent error” issue was that I’d installed the 32-bit version of MongoDB. The 32-bit version of MongoDB is limited to 2GB. In other words, it’s a toy. As many people pointed out, the Downloads page of MongoDB pretty much admits so.
The problem is, why would anyone need to go to the Downloads page? I’d installed MongoDB on my Mac (64-bit) through Homebrew, and on 32-bit Ubuntu via APT:
~$ apt-cache search mongodb mongodb - An object/document-oriented database (metapackage) mongodb-clients - An object/document-oriented database (client apps) mongodb-dev - An object/document-oriented database (development) mongodb-server - An object/document-oriented database (server package)
How would you know from those descriptions that you’re installing a toy? If you release a toy, at the very least you should show a big warning when the service starts. Let’s see:
~$ sudo service mongodb start mongodb start/running, process 7680
How about “Hey, you just started the 32-bit version of MongoDB which is LIMITED TO TWO GIGABYTES (2GB).” Nah, it’s in the Downloads page. It reminds me of this scene from the Hitchhiker’s Guide to the Galaxy, which I quoted in the comments:
“There’s no point in acting surprised about it. All the planning charts and demolition orders have been on display at your local planning department in Alpha Centauri for 50 of your Earth years, so you’ve had plenty of time to lodge any formal complaint and it’s far too late to start making a fuss about it now. … What do you mean you’ve never been to Alpha Centauri? Oh, for heaven’s sake, mankind, it’s only four light years away, you know. I’m sorry, but if you can’t be bothered to take an interest in local affairs, that’s your own lookout. Energize the demolition beams.”
Anyway, I hope that I’ve mentioned the limitations of the 32-bit version of MongoDB enough times for people to find them through Google if needed.
For the record, I don’t hate MongoDB or think it sucks. I quite like it. I just think it’s still an immature technology. Hopefully it will become a viable alternative to time-tested databases. Maybe in ten years? 🙂