Monger 1.5.0-rc1 is released
TL;DR
Monger is an idiomatic Clojure MongoDB driver for a more civilized age. It has batteries included, offers powerful expressive query DSL, strives to support every MongoDB 2.0+ feature and has sane defaults. It also has solid documentation.
1.5.0
is a minor completely backwards-compatible release that includes updated
dependencies, MongoDB 2.4’s full text search support and various minor improvements.
Full Text Search Support
Full text search in MongoDB 2.4 can be used via commands but Monger 1.5 also provides
convenience functions in the monger.search
namespace:
monger.search/search
for performing queriesmonger.search/results-from
for obtaining hit documents sorted by score
(require '[monger.collection :as mc])
(require '[monger.search :as ms])
(mc/ensure-index coll {:subject "text" :content "text"})
(mc/insert coll {:subject "hello there" :content "this should be searchable"})
(mc/insert coll {:subject "untitled" :content "this is just noize"})
(println (ms/results-from (ms/search coll "hello"))
MongoDB Java Driver Update
MongoDB Java driver dependency has been updated to 2.11.0.
New Geospatial Operators
monger.operators
now defines a few more operators for convenience:
$getWithin
$getIntersects
$near
Of course, these and any other new operators can be passed as strings (e.g. "$near"
)
as well.
monger.core/admin-db
monger.core/admin-db
is a new convenience function that returns the admin
database
reference.
monger.command/admin-command
monger.command/admin-command
is a new convenience function for running commands
on the admin
database.
monger.core/mongo-options Updates
monger.core/mongo-options
options are now up-to-date with the most recent
MongoDB Java driver.
Factory DSL Is Gone
Monger’s factory DSL (an undocumented experimental feature) has been removed from monger.testkit
. It did
not work as well as we expected and there are better alternatives available now.
Clojure 1.5 By Default
Monger now depends on org.clojure/clojure
version 1.5.1
. It is still compatible with Clojure 1.3+ and if your project.clj
depends
on a different version, it will be used, but 1.5 is the default now.
We encourage all users to upgrade to 1.5, it is a drop-in replacement for the majority of projects out there.
Authentication On Default Database
monger.core/authenticate
now has a 2-arity version that will authenticate
on the default database:
(let [username "myservice"
pwd "LGo5h#B`cTRQ>28tba6u"]
(monger.core/use-db! "mydb")
;; authenticates requests for mydb
(monger.core/authenticate username (.toCharArray pwd)))
ClojureWerkz Support Upgrade
ClojureWerkz Support dependency has been updated to version 0.15.0
.
This means Monger now will use Cheshire 5.0.x
.
Explicit DBCursor Closure by monger.collection/find-maps and the like
monger.collection/find-maps
and the like will now explicitly close DB cursors.
GH issue: 47
Change Log
Monger change log is available on GitHub.
Monger is a ClojureWerkz Project
Monger is part of the group of libraries known as ClojureWerkz, together with
- Welle, a Riak client with batteries included
- Elastisch, a minimalistic Clojure client for ElasticSearch
- Neocons, a client for the Neo4J REST API
- Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
- Quartzite, a powerful scheduling library
and several others. If you like Monger, you may also like our other projects.
Let us know what you think on Twitter or on the Clojure mailing list.
@michaelklishin on behalf of the ClojureWerkz Team