I recently started my first Dancer & MongoDB project. MongoDB is my preferred database (at the moment) and Dancer is a great framework, but something is missing: I really prefer using an ORM and didn’t find anything for MongoDB which fits my needs. (weiterlesen …)
There are few better ways for taking a SQL server down than SELECT … JOIN statements. Don’t get me wrong – a good JOIN could really fast, but huge JOIN blocks adding 10 or more foreign tables maybe even without using indexes could easily slow down the biggest SQL server. MongoDB has MapReduce to do the job with much less server impact – but more developer brain usage. (weiterlesen …)
Perl doesn’t care about numbers, integer or float – at least on the script level – but MongoDB does. The driver’s default number detection algorithm treats floats as strings and MongoDB doesn’t like to compare strings with less-than or greater-than operations. (weiterlesen …)
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. (weiterlesen …)
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. (weiterlesen …)
Früher war die Sache einfach: Eine Textdatei oder später ein tie-Call und die Daten waren gespeichert. Heute kämpfen verschiedene Datenbanken um die Vorherrschaft – aber eine wirklich gute Option scheint es nicht zu geben, man kann nur das kleinste Übel wählen. (weiterlesen …)
The Tie::Hash::MongoDB from scratch using Padre" href="http://www.pal-blog.de/entwicklung/perl/2011/creating-tiehashmongodb-from-scratch-using-padre.html">first part of this guide explained how to create the skeleton of the new module and how to create the backend for tie’ing a hash to a MongoDB document.
This second part will finish the job by putting some useful code into the skeleton methods. (weiterlesen …)
Perl’s hash is very powerful, it stores any kind of data, but it’s kept in memory and this is not always wanted. The powerful “tie” function binds a hash to a Perl module which could do whatever_it_wants with the data.
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. (weiterlesen …)
The MongoDB abstraction layer YAWF::Object::MongoDB finally made it’s version 0.02 release to CPAN yesterday.
A lot of bugs have been fixed, some minor, some major and many new tests have been added.
The new version supports grouping of (top level) keys:
use YAWF::Object::MongoDB ( keys => [ { birch => 1, oak => 1, color => 1, }, { deer => 1, boar => 1, color => 1, },
] );
This will push birch, oak and color in one group (group 0) and deer, boar and color in another group (group 1).
While fetching a document out of the database using ->new(), all the keys from group 0 will be fetched. Accessing one of the keys from another group (1 or higher) will add all the keys from their group(s). “color” is part of two groups, it will be fetched if either group is being requested.
Accessing any undefined key using get_column() will download the whole database document.
This is very new and even if a test script is there and it passes, there might be bugs and issues. Grouping isn’t currently part of the POD documentation and using ->list will still ignore it. Please test it and comment and once I consider it to be some kind of “stable”, I’ll add it to POD.
Gerade habe ich MongoDB noch hoch gelobt, da kostet mich eine Schlampigkeit im MongoDB-Treibermodul für Perl einen halben Arbeitstag. (weiterlesen …)

