At the Forge - Advanced MongoDB
Where things get tricky, and even sticky, is precisely in the area where relational databases have excelled (and have been optimized) for decades—namely, the interactions and associations among related objects, ensuring data integrity without compromising speed too much. I'm sure MongoDB will continue to improve in this area, but for now, this is the main thing that bothers me about MongoDB. Nevertheless, I've been impressed by what I've seen so far, and I easily can imagine using it on some of my future projects, especially those that will have a limited number of cross-collection references.
For an excellent introduction to MongoDB, including some corporate background on 10gen and how it can be used in your applications, listen to episode 105 of the “FLOSS Weekly” podcast. I found the podcast to be both entertaining and informative.
Another good introduction is from John Nunemaker, a well-known blogger in the Ruby world: railstips.org/blog/archives/2009/06/03/what-if-a-key-value-store-mated-with-a-relational-database-system.
Mathias Meyer wrote a terrific introduction and description of MongoDB on his blog: www.paperplanes.de/2010/2/25/notes_on_mongodb.html.
Because MongoDB is a “document” database, you might be wondering if if there is any way to generate a full-text index on a document. The answer is “kind of”, with more information and hints available at www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo.
Finally, David Mytton recently wrote a blog post, in which he described some of the issues he encountered when using MongoDB in a production environment: blog.boxedice.com/2010/02/28/notes-from-a-production-mongodb-deployment.
Reuven M. Lerner is a longtime Web developer, trainer, and consultant. He is a PhD candidate in Learning Sciences at Northwestern University. Reuven lives with his wife and three children in Modi'in, Israel.
- Integrating Trac, Jenkins and Cobbler—Customizing Linux Operating Systems for Organizational Needs
- Tech Tip: Really Simple HTTP Server with Python
- EdgeRouter Lite
- Non-Linux FOSS: Remember Burning ISOs?
- Returning Values from Bash Functions
- Using Django and MongoDB to Build a Blog
- Cooking with Linux - Serious Cool, Sysadmin Style!
- RSS Feeds
- Hack and / - Linux Troubleshooting, Part I: High Load