Support keywords as collection names
This commit is contained in:
parent
2fefd1a77e
commit
a7b7925495
3 changed files with 50 additions and 46 deletions
|
|
@ -1,6 +1,10 @@
|
||||||
## Changes between 1.0.0-beta1 and 1.1.0-beta2
|
## Changes between 1.0.0-beta1 and 1.1.0-beta2
|
||||||
|
|
||||||
No changes yet.
|
### Support for passing keywords as collection names
|
||||||
|
|
||||||
|
It is now possible to use Clojure keywords as collection names with `monger.collection` functions.
|
||||||
|
For example, `monger.collection/insert-and-return` that's given collection name as `:people` will store
|
||||||
|
treat it as `people` (by applying [clojure.core/name](http://clojuredocs.org/clojure_core/clojure.core/name) to the argument).
|
||||||
|
|
||||||
|
|
||||||
## Changes between 1.0.0-alpha3 and 1.1.0-beta1
|
## Changes between 1.0.0-alpha3 and 1.1.0-beta1
|
||||||
|
|
|
||||||
|
|
@ -63,15 +63,15 @@
|
||||||
(monger.collection/insert \"people\" {:name \"Joe\", :age 30, WriteConcern/SAFE})
|
(monger.collection/insert \"people\" {:name \"Joe\", :age 30, WriteConcern/SAFE})
|
||||||
"
|
"
|
||||||
([^String collection document]
|
([^String collection document]
|
||||||
(.insert (.getCollection monger.core/*mongodb-database* collection)
|
(.insert (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
^WriteConcern monger.core/*mongodb-write-concern*))
|
^WriteConcern monger.core/*mongodb-write-concern*))
|
||||||
([^String collection document ^WriteConcern concern]
|
([^String collection document ^WriteConcern concern]
|
||||||
(.insert (.getCollection monger.core/*mongodb-database* collection)
|
(.insert (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
concern))
|
concern))
|
||||||
([^DB db ^String collection document ^WriteConcern concern]
|
([^DB db ^String collection document ^WriteConcern concern]
|
||||||
(.insert (.getCollection db collection)
|
(.insert (.getCollection db (name collection))
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
concern)))
|
concern)))
|
||||||
|
|
||||||
|
|
@ -113,15 +113,15 @@
|
||||||
|
|
||||||
"
|
"
|
||||||
([^String collection ^List documents]
|
([^String collection ^List documents]
|
||||||
(.insert (.getCollection monger.core/*mongodb-database* collection)
|
(.insert (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
^List (to-db-object documents)
|
^List (to-db-object documents)
|
||||||
^WriteConcern monger.core/*mongodb-write-concern*))
|
^WriteConcern monger.core/*mongodb-write-concern*))
|
||||||
([^String collection ^List documents ^WriteConcern concern]
|
([^String collection ^List documents ^WriteConcern concern]
|
||||||
(.insert (.getCollection monger.core/*mongodb-database* collection)
|
(.insert (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
^List (to-db-object documents)
|
^List (to-db-object documents)
|
||||||
concern))
|
concern))
|
||||||
([^DB db ^String collection ^List documents ^WriteConcern concern]
|
([^DB db ^String collection ^List documents ^WriteConcern concern]
|
||||||
(.insert (.getCollection db collection)
|
(.insert (.getCollection db (name collection))
|
||||||
^List (to-db-object documents)
|
^List (to-db-object documents)
|
||||||
concern)))
|
concern)))
|
||||||
|
|
||||||
|
|
@ -145,16 +145,16 @@
|
||||||
(mgcol/find \"people\" {:company \"Comp Corp\"} [:first_name :last_name])
|
(mgcol/find \"people\" {:company \"Comp Corp\"} [:first_name :last_name])
|
||||||
"
|
"
|
||||||
([^String collection]
|
([^String collection]
|
||||||
(.find (.getCollection monger.core/*mongodb-database* collection)))
|
(.find (.getCollection monger.core/*mongodb-database* (name collection))))
|
||||||
([^String collection ^Map ref]
|
([^String collection ^Map ref]
|
||||||
(.find (.getCollection monger.core/*mongodb-database* collection)
|
(.find (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object ref)))
|
(to-db-object ref)))
|
||||||
([^String collection ^Map ref fields]
|
([^String collection ^Map ref fields]
|
||||||
(.find (.getCollection monger.core/*mongodb-database* collection)
|
(.find (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object ref)
|
(to-db-object ref)
|
||||||
(as-field-selector fields)))
|
(as-field-selector fields)))
|
||||||
([^DB db ^String collection ^Map ref fields]
|
([^DB db ^String collection ^Map ref fields]
|
||||||
(.find (.getCollection db collection)
|
(.find (.getCollection db (name collection))
|
||||||
(to-db-object ref)
|
(to-db-object ref)
|
||||||
(as-field-selector fields))))
|
(as-field-selector fields))))
|
||||||
|
|
||||||
|
|
@ -200,14 +200,14 @@
|
||||||
|
|
||||||
"
|
"
|
||||||
([^String collection ^Map ref]
|
([^String collection ^Map ref]
|
||||||
(.findOne (.getCollection monger.core/*mongodb-database* collection)
|
(.findOne (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object ref)))
|
(to-db-object ref)))
|
||||||
([^String collection ^Map ref fields]
|
([^String collection ^Map ref fields]
|
||||||
(.findOne (.getCollection monger.core/*mongodb-database* collection)
|
(.findOne (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object ref)
|
(to-db-object ref)
|
||||||
^DBObject (as-field-selector fields)))
|
^DBObject (as-field-selector fields)))
|
||||||
([^DB db ^String collection ^Map ref fields]
|
([^DB db ^String collection ^Map ref fields]
|
||||||
(.findOne (.getCollection db collection)
|
(.findOne (.getCollection db (name collection))
|
||||||
(to-db-object ref)
|
(to-db-object ref)
|
||||||
^DBObject (as-field-selector fields))))
|
^DBObject (as-field-selector fields))))
|
||||||
|
|
||||||
|
|
@ -251,7 +251,7 @@
|
||||||
"
|
"
|
||||||
([^String collection ^Map conditions ^Map document & {:keys [fields sort remove return-new upsert keywordize] :or
|
([^String collection ^Map conditions ^Map document & {:keys [fields sort remove return-new upsert keywordize] :or
|
||||||
{fields nil sort nil remove false return-new false upsert false keywordize true}}]
|
{fields nil sort nil remove false return-new false upsert false keywordize true}}]
|
||||||
(let [coll (.getCollection monger.core/*mongodb-database* collection)
|
(let [coll (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
maybe-fields (when fields (as-field-selector fields))
|
maybe-fields (when fields (as-field-selector fields))
|
||||||
maybe-sort (when sort (to-db-object sort))]
|
maybe-sort (when sort (to-db-object sort))]
|
||||||
(from-db-object
|
(from-db-object
|
||||||
|
|
@ -316,11 +316,11 @@
|
||||||
|
|
||||||
(monger.collection/count collection {:first_name \"Paul\"})"
|
(monger.collection/count collection {:first_name \"Paul\"})"
|
||||||
(^long [^String collection]
|
(^long [^String collection]
|
||||||
(.count (.getCollection monger.core/*mongodb-database* collection)))
|
(.count (.getCollection monger.core/*mongodb-database* (name collection))))
|
||||||
(^long [^String collection ^Map conditions]
|
(^long [^String collection ^Map conditions]
|
||||||
(.count (.getCollection monger.core/*mongodb-database* collection) (to-db-object conditions)))
|
(.count (.getCollection monger.core/*mongodb-database* (name collection)) (to-db-object conditions)))
|
||||||
(^long [^DB db ^String collection ^Map conditions]
|
(^long [^DB db ^String collection ^Map conditions]
|
||||||
(.count (.getCollection db collection) (to-db-object conditions))))
|
(.count (.getCollection db (name collection)) (to-db-object conditions))))
|
||||||
|
|
||||||
(defn any?
|
(defn any?
|
||||||
"Wether the collection has any items at all, or items matching query.
|
"Wether the collection has any items at all, or items matching query.
|
||||||
|
|
@ -389,7 +389,7 @@
|
||||||
([^String collection ^Map conditions ^Map document & {:keys [upsert multi write-concern] :or {upsert false
|
([^String collection ^Map conditions ^Map document & {:keys [upsert multi write-concern] :or {upsert false
|
||||||
multi false
|
multi false
|
||||||
write-concern monger.core/*mongodb-write-concern*}}]
|
write-concern monger.core/*mongodb-write-concern*}}]
|
||||||
(.update (.getCollection monger.core/*mongodb-database* collection)
|
(.update (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object conditions)
|
(to-db-object conditions)
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
upsert
|
upsert
|
||||||
|
|
@ -401,7 +401,7 @@
|
||||||
[^String collection id ^Map document & {:keys [upsert write-concern] :or {upsert false
|
[^String collection id ^Map document & {:keys [upsert write-concern] :or {upsert false
|
||||||
write-concern monger.core/*mongodb-write-concern*}}]
|
write-concern monger.core/*mongodb-write-concern*}}]
|
||||||
(check-not-nil! id "id must not be nil")
|
(check-not-nil! id "id must not be nil")
|
||||||
(.update (.getCollection monger.core/*mongodb-database* collection)
|
(.update (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object {:_id id})
|
(to-db-object {:_id id})
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
upsert
|
upsert
|
||||||
|
|
@ -422,15 +422,15 @@
|
||||||
(monger.collection/save \"people\" {:first_name \"Ian\" :last_name \"Gillan\"})
|
(monger.collection/save \"people\" {:first_name \"Ian\" :last_name \"Gillan\"})
|
||||||
"
|
"
|
||||||
([^String collection ^Map document]
|
([^String collection ^Map document]
|
||||||
(.save (.getCollection monger.core/*mongodb-database* collection)
|
(.save (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(to-db-object document)
|
(to-db-object document)
|
||||||
monger.core/*mongodb-write-concern*))
|
monger.core/*mongodb-write-concern*))
|
||||||
([^String collection ^Map document ^WriteConcern write-concern]
|
([^String collection ^Map document ^WriteConcern write-concern]
|
||||||
(.save (.getCollection monger.core/*mongodb-database* collection)
|
(.save (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
document
|
document
|
||||||
write-concern))
|
write-concern))
|
||||||
([^DB db ^String collection ^Map document ^WriteConcern write-concern]
|
([^DB db ^String collection ^Map document ^WriteConcern write-concern]
|
||||||
(.save (.getCollection db collection)
|
(.save (.getCollection db (name collection))
|
||||||
document
|
document
|
||||||
write-concern)))
|
write-concern)))
|
||||||
|
|
||||||
|
|
@ -448,11 +448,11 @@
|
||||||
|
|
||||||
"
|
"
|
||||||
([^String collection]
|
([^String collection]
|
||||||
(.remove (.getCollection monger.core/*mongodb-database* collection) (to-db-object {})))
|
(.remove (.getCollection monger.core/*mongodb-database* (name collection)) (to-db-object {})))
|
||||||
([^String collection ^Map conditions]
|
([^String collection ^Map conditions]
|
||||||
(.remove (.getCollection monger.core/*mongodb-database* collection) (to-db-object conditions)))
|
(.remove (.getCollection monger.core/*mongodb-database* (name collection)) (to-db-object conditions)))
|
||||||
([^DB db ^String collection ^Map conditions]
|
([^DB db ^String collection ^Map conditions]
|
||||||
(.remove (.getCollection db collection) (to-db-object conditions))))
|
(.remove (.getCollection db (name collection)) (to-db-object conditions))))
|
||||||
|
|
||||||
|
|
||||||
(defn ^WriteResult remove-by-id
|
(defn ^WriteResult remove-by-id
|
||||||
|
|
@ -461,7 +461,7 @@
|
||||||
(remove-by-id monger.core/*mongodb-database* collection id))
|
(remove-by-id monger.core/*mongodb-database* collection id))
|
||||||
([^DB db ^String collection id]
|
([^DB db ^String collection id]
|
||||||
(check-not-nil! id "id must not be nil")
|
(check-not-nil! id "id must not be nil")
|
||||||
(let [coll (.getCollection db collection)]
|
(let [coll (.getCollection db (name collection))]
|
||||||
(.remove coll (to-db-object {:_id id})))))
|
(.remove coll (to-db-object {:_id id})))))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -480,13 +480,13 @@
|
||||||
|
|
||||||
"
|
"
|
||||||
([^String collection ^Map keys]
|
([^String collection ^Map keys]
|
||||||
(.createIndex (.getCollection monger.core/*mongodb-database* collection) (as-field-selector keys)))
|
(.createIndex (.getCollection monger.core/*mongodb-database* (name collection)) (as-field-selector keys)))
|
||||||
([^String collection ^Map keys options]
|
([^String collection ^Map keys options]
|
||||||
(.createIndex (.getCollection monger.core/*mongodb-database* collection)
|
(.createIndex (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(as-field-selector keys)
|
(as-field-selector keys)
|
||||||
(to-db-object options)))
|
(to-db-object options)))
|
||||||
([^DB db ^String collection ^Map keys ^Map options]
|
([^DB db ^String collection ^Map keys ^Map options]
|
||||||
(.createIndex (.getCollection db collection)
|
(.createIndex (.getCollection db (name collection))
|
||||||
(as-field-selector keys)
|
(as-field-selector keys)
|
||||||
(to-db-object options))))
|
(to-db-object options))))
|
||||||
|
|
||||||
|
|
@ -512,13 +512,13 @@
|
||||||
(monger.collection/ensure-index \"pages\" {:url 1} {:unique true})
|
(monger.collection/ensure-index \"pages\" {:url 1} {:unique true})
|
||||||
"
|
"
|
||||||
([^String collection ^Map keys]
|
([^String collection ^Map keys]
|
||||||
(.ensureIndex (.getCollection monger.core/*mongodb-database* collection) (as-field-selector keys)))
|
(.ensureIndex (.getCollection monger.core/*mongodb-database* (name collection)) (as-field-selector keys)))
|
||||||
([^String collection ^Map keys ^Map options]
|
([^String collection ^Map keys ^Map options]
|
||||||
(.ensureIndex (.getCollection monger.core/*mongodb-database* collection)
|
(.ensureIndex (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(as-field-selector keys)
|
(as-field-selector keys)
|
||||||
(to-db-object options)))
|
(to-db-object options)))
|
||||||
([^String collection ^Map keys ^String name ^Boolean unique?]
|
([^String collection ^Map keys ^String name ^Boolean unique?]
|
||||||
(.ensureIndex (.getCollection monger.core/*mongodb-database* collection)
|
(.ensureIndex (.getCollection monger.core/*mongodb-database* (name collection))
|
||||||
(as-field-selector keys)
|
(as-field-selector keys)
|
||||||
name
|
name
|
||||||
unique?)))
|
unique?)))
|
||||||
|
|
@ -537,7 +537,7 @@
|
||||||
|
|
||||||
"
|
"
|
||||||
[^String collection]
|
[^String collection]
|
||||||
(from-db-object (.getIndexInfo (.getCollection monger.core/*mongodb-database* collection)) true))
|
(from-db-object (.getIndexInfo (.getCollection monger.core/*mongodb-database* (name collection))) true))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
@ -547,16 +547,16 @@
|
||||||
(defn drop-index
|
(defn drop-index
|
||||||
"Drops an index from this collection."
|
"Drops an index from this collection."
|
||||||
([^String collection ^String name]
|
([^String collection ^String name]
|
||||||
(.dropIndex (.getCollection monger.core/*mongodb-database* collection) name))
|
(.dropIndex (.getCollection monger.core/*mongodb-database* (name collection)) name))
|
||||||
([^DB db ^String collection ^String name]
|
([^DB db ^String collection ^String name]
|
||||||
(.dropIndex (.getCollection db collection) name)))
|
(.dropIndex (.getCollection db (name collection)) name)))
|
||||||
|
|
||||||
(defn drop-indexes
|
(defn drop-indexes
|
||||||
"Drops all indixes from this collection."
|
"Drops all indixes from this collection."
|
||||||
([^String collection]
|
([^String collection]
|
||||||
(.dropIndexes (.getCollection monger.core/*mongodb-database* collection)))
|
(.dropIndexes (.getCollection monger.core/*mongodb-database* (name collection))))
|
||||||
([^DB db ^String collection]
|
([^DB db ^String collection]
|
||||||
(.dropIndexes (.getCollection db collection))))
|
(.dropIndexes (.getCollection db (name collection)))))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
@ -591,9 +591,9 @@
|
||||||
(monger.collection/drop \"collection-to-drop\")
|
(monger.collection/drop \"collection-to-drop\")
|
||||||
"
|
"
|
||||||
([^String collection]
|
([^String collection]
|
||||||
(.drop (.getCollection monger.core/*mongodb-database* collection)))
|
(.drop (.getCollection monger.core/*mongodb-database* (name collection))))
|
||||||
([^DB db ^String collection]
|
([^DB db ^String collection]
|
||||||
(.drop (.getCollection db collection))))
|
(.drop (.getCollection db (name collection)))))
|
||||||
|
|
||||||
(defn rename
|
(defn rename
|
||||||
"Renames collection.
|
"Renames collection.
|
||||||
|
|
@ -616,10 +616,10 @@
|
||||||
(defn map-reduce
|
(defn map-reduce
|
||||||
"Performs a map reduce operation"
|
"Performs a map reduce operation"
|
||||||
([^String collection ^String js-mapper ^String js-reducer ^String output ^Map query]
|
([^String collection ^String js-mapper ^String js-reducer ^String output ^Map query]
|
||||||
(let [coll (.getCollection monger.core/*mongodb-database* collection)]
|
(let [coll (.getCollection monger.core/*mongodb-database* (name collection))]
|
||||||
(.mapReduce coll js-mapper js-reducer output (to-db-object query))))
|
(.mapReduce coll js-mapper js-reducer output (to-db-object query))))
|
||||||
([^String collection ^String js-mapper ^String js-reducer ^String output ^MapReduceCommand$OutputType output-type ^Map query]
|
([^String collection ^String js-mapper ^String js-reducer ^String output ^MapReduceCommand$OutputType output-type ^Map query]
|
||||||
(let [coll (.getCollection monger.core/*mongodb-database* collection)]
|
(let [coll (.getCollection monger.core/*mongodb-database* (name collection))]
|
||||||
(.mapReduce coll js-mapper js-reducer output output-type (to-db-object query)))))
|
(.mapReduce coll js-mapper js-reducer output output-type (to-db-object query)))))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -630,11 +630,11 @@
|
||||||
(defn distinct
|
(defn distinct
|
||||||
"Finds distinct values for a key"
|
"Finds distinct values for a key"
|
||||||
([^String collection ^String key]
|
([^String collection ^String key]
|
||||||
(.distinct (.getCollection monger.core/*mongodb-database* collection) ^String (to-db-object key)))
|
(.distinct (.getCollection monger.core/*mongodb-database* (name collection)) ^String (to-db-object key)))
|
||||||
([^String collection ^String key ^Map query]
|
([^String collection ^String key ^Map query]
|
||||||
(.distinct (.getCollection monger.core/*mongodb-database* collection) ^String (to-db-object key) (to-db-object query)))
|
(.distinct (.getCollection monger.core/*mongodb-database* (name collection)) ^String (to-db-object key) (to-db-object query)))
|
||||||
([^DB db ^String collection ^String key ^Map query]
|
([^DB db ^String collection ^String key ^Map query]
|
||||||
(.distinct (.getCollection db collection) ^String (to-db-object key) (to-db-object query))))
|
(.distinct (.getCollection db (name collection)) ^String (to-db-object key) (to-db-object query))))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@
|
||||||
(deftest insert-and-return-a-basic-document-without-id-and-with-default-write-concern
|
(deftest insert-and-return-a-basic-document-without-id-and-with-default-write-concern
|
||||||
(let [collection "people"
|
(let [collection "people"
|
||||||
doc {:name "Joe" :age 30}
|
doc {:name "Joe" :age 30}
|
||||||
result (mc/insert-and-return "people" doc)]
|
result (mc/insert-and-return :people doc)]
|
||||||
(is (= (:name doc)
|
(is (= (:name doc)
|
||||||
(:name result)))
|
(:name result)))
|
||||||
(is (= (:age doc)
|
(is (= (:age doc)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue