I've been having trouble with congomongo for the reasons you
specified, and a few more (doesn't sort, ran into a bug where limit
was working properly with large datasets).

I recently switched to the "karras" clojure wrapper for mongodb
(http://github.com/wilkes/karras), and found it to be much more
fully-featured and reliable, and it works with the 2.2 mongo java
driver and has no reflection warnings.

Congomongo has a somewhat simper, more intuitive api, and the karras
documentation is mostly non-existent (I figured it out primarily by
reading the source files "collection" and "sugar"), but overall, I'm
very glad I switched.

I agree that mongodb fits well with Clojure and I intend to use it
whenever possible.  My only real negative issue with mongodb is that
it has severe size constraints on a 32-bit platform.  Sadly, for my
current project, I hit a wall with mongo.  After trying out couchDB,
sqlite, h2, and a couple other options, I eventually settled on MySQL
as the one that worked best to manipulate the quantity of data I need
into the file and memory limitations of my machine.  None of the
options were anywhere near as fast or as easy to program as mongo,
though.  Almost makes me wish I were running a 64-bit OS.

The only other Clojure/mongo "gotcha" I've experienced is that if you
use Clojure's lazy sequences to stream through query results, and you
do some sort of update on the objects in the query, it screws with the
streaming query and the lazy stream can end up skipping over objects
that fit the query.  So it's vital to use doall to force the entire
lazy stream to be realized before you do any updates.  This is
unfortunate, because it means you're memory bound if you want to
update all the items in your database.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to