MongoDB
Ich nutze MongoDB schon seit über einem Jahr, bisher aber nur für kleinere Sachen - und ohne MapReduce. Dabei ist es genau diese Funktion, die viel zur Macht dieser ungewöhnlichen Datenbank beiträgt.
I recently decided to prefer MongoDB for new projects and it turned out that I still need to learn a lot of things about it. One of them is MapReduce which is more powerful than (most) SQL SELECT options.
The YAWF framework is available from CPAN, but it still needs a Webserver and some environment for working at it's best. This tutorial shows everything needed to set up a new OpenVZ VE (VServer) with MongoDB and YAWF framework on an existing OpenVZ host.
This second part will finish the job by putting some useful code into the skeleton methods.
Today I'ld like to show you how easy a has could be connected to a database. A module which connects a hash to SQL is already on CPAN, so let's go with MongoDB.
Mein Wrapper-Modul YAWF::Object::MongoDB ist bereits auf CPAN und sollte in den nächsten Stunden auch im Index verfügbar sein.
Hunter hat eine kurze, aber sehr gute Zusammenfassung der CRUD-Funktionen mit MongoDB und Perl geschrieben, die ich Euch keinesfalls vorenthalten möchte.
Meiner Meinung nach sollte diese Seite entweder Teil des MongoDB::Tutorial werden oder zumindest von dort verlinkt sein.
Dabei zeigen sich nach und nach bisher noch unbekannte Vor- und Nachteile der Kombination Perl/Objekt-Wrapper/MongoDB und einige Klippen müssen noch umschifft werden.
Bei diesem Schritt habe ich mich für "Test driven development" - kurz TDD - entschieden, einem Verfahren bei dem erst das Endergebnis in mittels einer Reihe von Tests definiert wird und dann ein Modul (bzw. Programm) entwickelt wird, dass alle Tests erfolgreich besteht. Wurden die Tests entsprechend sauber und vollständig geschrieben, ist das Projekt dann abgeschlossen.
Vor ein paar Tagen habe ich die Frage aufgeworfen, ob mein nächstes Projekt eine SQL-basierte oder NoSQL/dokumentenbasierte Datenbanknutzen soll.
Auf der SQL-Seite tritt Postgres - mein aktuelle Favorit unter den Datenbanken - an und auch wenn regelmäßig neue Versionen herauskommen, kann Postgres als "fertig" betrachtet werden.
Recht neu sind CouchDB und MongoDB, zwei dokumentenorientierte Datenbanken, die für diese Seite in das Rennen gingen. Das Ergebnis ist knapper als erwartet ausgefallen.
Zwei Sachen sind mir zu MongoDB nach dem letzten Post noch aufgefallen, die nicht unerwähnt bleiben sollen: