Hi,
I was sufficiently annoyed with the fact that one could not operate on a second database while in the context of another, that I've created a fork of the otherwise excellent clutch library:
https://github.com/jalpedersen/clutch
The new version creates two distinct versions of the given function: One taking the database from the thread-bound *database* and another which takes it from it's first argument. The latter has "-with-db" appended to the function name
Example:
(put-document-with-db my-db {:name "Bob"})
(with-db db
(put-document {:name "Alice"})
(put-document-with-db another-db {:name "Cecil"}))