Cosmetics

This commit is contained in:
Michael S. Klishin 2012-06-10 12:49:37 +04:00
parent bb5cfdc499
commit 52c5e15008

View file

@ -41,9 +41,9 @@
EXAMPLES: EXAMPLES:
(monger.collection/insert \"people\" { :name \"Joe\", :age 30 }) (monger.collection/insert \"people\" {:name \"Joe\", :age 30})
(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* collection)
@ -64,9 +64,9 @@
EXAMPLES: EXAMPLES:
(monger.collection/insert-batch \"people\" [{ :name \"Joe\", :age 30 }, { :name \"Paul\", :age 27 }]) (monger.collection/insert-batch \"people\" [{:name \"Joe\", :age 30}, {:name \"Paul\", :age 27}])
(monger.collection/insert-batch \"people\" [{ :name \"Joe\", :age 30 }, { :name \"Paul\", :age 27 }] WriteConcern/NORMAL) (monger.collection/insert-batch \"people\" [{:name \"Joe\", :age 30}, {:name \"Paul\", :age 27}] WriteConcern/NORMAL)
" "
([^String collection ^List documents] ([^String collection ^List documents]
@ -96,10 +96,10 @@
(mgcol/find \"people\") (mgcol/find \"people\")
;; return all objects matching query ;; return all objects matching query
(mgcol/find \"people\" { :company \"Comp Corp\"}) (mgcol/find \"people\" {:company \"Comp Corp\"})
;; return all objects matching query, taking only specified fields ;; return all objects matching query, taking only specified fields
(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* collection)))
@ -149,11 +149,11 @@
EXAMPLES: EXAMPLES:
(mgcol/find-one collection { :language \"Clojure\" }) (mgcol/find-one collection {:language \"Clojure\"})
;; Return only :language field. ;; Return only :language field.
;; Note that _id field is always returned. ;; Note that _id field is always returned.
(mgcol/find-one collection { :language \"Clojure\" } [:language]) (mgcol/find-one collection {:language \"Clojure\"} [:language])
" "
([^String collection ^Map ref] ([^String collection ^Map ref]
@ -186,28 +186,28 @@
"Atomically modify a document (at most one) and return it. "Atomically modify a document (at most one) and return it.
EXAMPLES: EXAMPLES:
;; Find and modify a document ;; Find and modify a document
(mgcol/find-and-modify collection { :language \"Python\" } { :language \"Clojure\" }) (mgcol/find-and-modify collection {:language \"Python\"} {:language \"Clojure\"})
;; If multiple documents match, choose the first one in the specified order ;; If multiple documents match, choose the first one in the specified order
(mgcol/find-and-modify collection { :language \"Python\" } { :language \"Clojure\" } :sort { :language -1 }) (mgcol/find-and-modify collection {:language \"Python\"} {:language \"Clojure\"} :sort {:language -1})
;; Remove the object before returning ;; Remove the object before returning
(mgcol/find-and-modify collection { :language \"Python\" } {} :remove true) (mgcol/find-and-modify collection {:language \"Python\"} {} :remove true)
;; Return the modified object instead of the old one ;; Return the modified object instead of the old one
(mgcol/find-and-modify collection { :language \"Python\" } { :language \"Clojure\" } :return-new true) (mgcol/find-and-modify collection {:language \"Python\"} {:language \"Clojure\"} :return-new true)
;; Retrieve a subset of fields ;; Retrieve a subset of fields
(mgcol/find-and-modify collection { :language \"Python\" } { :language \"Clojure\" } :fields [ :language ]) (mgcol/find-and-modify collection {:language \"Python\"} {:language \"Clojure\"} :fields [ :language ])
;; Create the object if it doesn't exist ;; Create the object if it doesn't exist
(mgcol/find-and-modify collection { :language \"Factor\" } { :language \"Clojure\" } :upsert true) (mgcol/find-and-modify collection {:language \"Factor\"} {:language \"Clojure\"} :upsert true)
" "
([^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* 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))]
@ -232,25 +232,25 @@
" "
([^String collection id] ([^String collection id]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(find-one collection { :_id id })) (find-one collection {:_id id}))
([^String collection id fields] ([^String collection id fields]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(find-one collection { :_id id } fields)) (find-one collection {:_id id} fields))
([^DB db ^String collection id fields] ([^DB db ^String collection id fields]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(find-one db collection { :_id id } fields))) (find-one db collection {:_id id} fields)))
(defn ^IPersistentMap find-map-by-id (defn ^IPersistentMap find-map-by-id
"Returns a single object, converted to map with matching _id field." "Returns a single object, converted to map with matching _id field."
([^String collection id] ([^String collection id]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(from-db-object ^DBObject (find-one-as-map collection { :_id id }) true)) (from-db-object ^DBObject (find-one-as-map collection {:_id id}) true))
([^String collection id fields] ([^String collection id fields]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(from-db-object ^DBObject (find-one-as-map collection { :_id id } fields) true)) (from-db-object ^DBObject (find-one-as-map collection {:_id id} fields) true))
([^String collection id fields keywordize] ([^String collection id fields keywordize]
(check-not-nil! id "id must not be nil") (check-not-nil! id "id must not be nil")
(from-db-object ^DBObject (find-one-as-map collection { :_id id } fields) keywordize))) (from-db-object ^DBObject (find-one-as-map collection {:_id id} fields) keywordize)))
;; ;;
@ -271,7 +271,7 @@
(monger.collection/count collection) (monger.collection/count collection)
(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* collection)))
(^long [^String collection ^Map conditions] (^long [^String collection ^Map conditions]
@ -287,7 +287,7 @@
;; wether the collection has any items ;; wether the collection has any items
(mgcol/any? collection) (mgcol/any? collection)
(mgcol/any? collection { :language \"Clojure\" })) (mgcol/any? collection {:language \"Clojure\"}))
" "
([^String collection] ([^String collection]
(> (count collection) 0)) (> (count collection) 0))
@ -319,17 +319,17 @@
EXAMPLES EXAMPLES
(monger.collection/update \"people\" { :first_name \"Raul\" } { \"$set\" { :first_name \"Paul\" } }) (monger.collection/update \"people\" {:first_name \"Raul\"} {\"$set\" {:first_name \"Paul\"}})
You can use all the Mongodb Modifier Operations ($inc, $set, $unset, $push, $pushAll, $addToSet, $pop, $pull You can use all the Mongodb Modifier Operations ($inc, $set, $unset, $push, $pushAll, $addToSet, $pop, $pull
$pullAll, $rename, $bit) here, as well $pullAll, $rename, $bit) here, as well
EXAMPLES EXAMPLES
(monger.collection/update \"people\" { :first_name \"Paul\" } { \"$set\" { :index 1 } }) (monger.collection/update \"people\" {:first_name \"Paul\"} {\"$set\" {:index 1}})
(monger.collection/update \"people\" { :first_name \"Paul\" } { \"$inc\" { :index 5 } }) (monger.collection/update \"people\" {:first_name \"Paul\"} {\"$inc\" {:index 5}})
(monger.collection/update \"people\" { :first_name \"Paul\" } { \"$unset\" { :years_on_stage 1} }) (monger.collection/update \"people\" {:first_name \"Paul\"} {\"$unset\" {:years_on_stage 1}})
It also takes modifiers, such as :upsert and :multi. It also takes modifiers, such as :upsert and :multi.
@ -337,15 +337,15 @@
;; add :band field to all the records found in \"people\" collection, otherwise only the first matched record ;; add :band field to all the records found in \"people\" collection, otherwise only the first matched record
;; will be updated ;; will be updated
(monger.collection/update \"people\" { } { \"$set\" { :band \"The Beatles\" }} :multi true) (monger.collection/update \"people\" {} {\"$set\" {:band \"The Beatles\"}} :multi true)
;; inserts the record if it did not exist in the collection ;; inserts the record if it did not exist in the collection
(monger.collection/update \"people\" { :first_name \"Yoko\" } { :first_name \"Yoko\" :last_name \"Ono\" } :upsert true) (monger.collection/update \"people\" {:first_name \"Yoko\"} {:first_name \"Yoko\" :last_name \"Ono\"} :upsert true)
By default :upsert and :multi are false." By default :upsert and :multi are false."
([^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* collection)
(to-db-object conditions) (to-db-object conditions)
(to-db-object document) (to-db-object document)
@ -355,11 +355,11 @@
(defn ^WriteResult update-by-id (defn ^WriteResult update-by-id
"Update a document with given id" "Update a document with given id"
[^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* collection)
(to-db-object { :_id id }) (to-db-object {:_id id})
(to-db-object document) (to-db-object document)
upsert upsert
false false
@ -376,7 +376,7 @@
EXAMPLES EXAMPLES
(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* collection)
@ -401,7 +401,7 @@
(monger.collection/remove collection) ;; Removes all documents from DB (monger.collection/remove collection) ;; Removes all documents from DB
(monger.collection/remove collection { :language \"Clojure\" }) ;; Removes documents based on given query (monger.collection/remove collection {:language \"Clojure\"}) ;; Removes documents based on given query
" "
([^String collection] ([^String collection]
@ -419,7 +419,7 @@
([^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 collection)]
(.remove coll (to-db-object { :_id id }))))) (.remove coll (to-db-object {:_id id})))))
;; ;;
@ -432,8 +432,8 @@
EXAMPLES EXAMPLES
;; Will create an index on the \"language\" field ;; Will create an index on the \"language\" field
(monger.collection/create-index collection { \"language\" 1 }) (monger.collection/create-index collection {\"language\" 1})
(monger.collection/create-index collection { \"language\" 1 } { :unique true :name \"unique_language\" }) (monger.collection/create-index collection {\"language\" 1} {:unique true :name \"unique_language\"})
" "
([^String collection ^Map keys] ([^String collection ^Map keys]
@ -459,13 +459,13 @@
EXAMPLES EXAMPLES
;; create a regular index ;; create a regular index
(monger.collection/ensure-index \"documents\" { \"language\" 1 }) (monger.collection/ensure-index \"documents\" {\"language\" 1})
;; create a unique index ;; create a unique index
(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) (to-db-object keys))) (.ensureIndex (.getCollection monger.core/*mongodb-database* collection) (to-db-object 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* collection)
(to-db-object keys) (to-db-object keys)
(to-db-object options))) (to-db-object options)))
@ -567,10 +567,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* 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* 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)))))
@ -596,8 +596,8 @@
(defn create (defn create
"Creates a collection. Options are: :capped (pass true to create a capped collection), :max (number of documents) "Creates a collection. Options are: :capped (pass true to create a capped collection), :max (number of documents)
and :size (max allowed size of the collection, in bytes)." and :size (max allowed size of the collection, in bytes)."
[^String name options] [^String collection options]
(.createCollection ^DB monger.core/*mongodb-database* name (to-db-object options))) (.createCollection ^DB monger.core/*mongodb-database* collection (to-db-object options)))
;; ;;
;; Aggregation ;; Aggregation
@ -607,8 +607,8 @@
"Performs aggregation query. MongoDB 2.1/2.2+ only. "Performs aggregation query. MongoDB 2.1/2.2+ only.
See http://docs.mongodb.org/manual/applications/aggregation/ to learn more." See http://docs.mongodb.org/manual/applications/aggregation/ to learn more."
[^String coll stages] [^String collection stages]
(let [res (monger.core/command {:aggregate coll :pipeline stages})] (let [res (monger.core/command {:aggregate collection :pipeline stages})]
;; this is what DBCollection#distinct does. Turning a blind eye! ;; this is what DBCollection#distinct does. Turning a blind eye!
(.throwOnError res) (.throwOnError res)
(map #(from-db-object % true) (.get res "result")))) (map #(from-db-object % true) (.get res "result"))))
@ -624,5 +624,5 @@
(defn system-collection? (defn system-collection?
"Evaluates to true if the given collection name refers to a system collection. System collections "Evaluates to true if the given collection name refers to a system collection. System collections
are prefixed with system. or fs. (default GridFS collection prefix)" are prefixed with system. or fs. (default GridFS collection prefix)"
[^String coll-name] [^String collection]
(re-find system-collection-pattern coll-name)) (re-find system-collection-pattern collection))