diff --git a/src/clojure/monger/collection.clj b/src/clojure/monger/collection.clj index 680452c..0b9a73a 100644 --- a/src/clojure/monger/collection.clj +++ b/src/clojure/monger/collection.clj @@ -164,24 +164,32 @@ If you want to work directly with DBObject, use find. " ([^String collection] - (map (fn [x] (from-db-object x true)) (find collection))) + (with-open [dbc (find collection)] + (map (fn [x] (from-db-object x true)) dbc))) ([^String collection ^Map ref] - (map (fn [x] (from-db-object x true)) (find collection ref))) + (with-open [dbc (find collection ref)] + (map (fn [x] (from-db-object x true)) dbc))) ([^String collection ^Map ref fields] - (map (fn [x] (from-db-object x true)) (find collection ref fields))) + (with-open [dbc (find collection ref fields)] + (map (fn [x] (from-db-object x true)) dbc))) ([^DB db ^String collection ^Map ref fields] - (map (fn [x] (from-db-object x true)) (find db collection ref fields)))) + (with-open [dbc (find db collection ref fields)] + (map (fn [x] (from-db-object x true)) dbc)))) (defn find-seq "Queries for objects in this collection, returns ISeq of DBObjects." ([^String collection] - (seq (find collection))) + (with-open [dbc (find collection)] + (seq dbc))) ([^String collection ^Map ref] - (seq (find collection ref))) + (with-open [dbc (find collection ref)] + (seq dbc))) ([^String collection ^Map ref fields] - (seq (find collection ref fields))) + (with-open [dbc (find collection ref fields)] + (seq dbc))) ([^DB db ^String collection ^Map ref fields] - (seq (find db collection ref fields)))) + (with-open [dbc (find db collection ref fields)] + (seq dbc)))) ;; ;; monger.collection/find-one diff --git a/src/clojure/monger/query.clj b/src/clojure/monger/query.clj index 6ef4392..99233a8 100644 --- a/src/clojure/monger/query.clj +++ b/src/clojure/monger/query.clj @@ -64,12 +64,12 @@ (defn exec [{ :keys [^DBCollection collection query fields skip limit sort batch-size hint snapshot read-preference keywordize-fields options] :or { limit 0 batch-size 256 skip 0 } }] - (let [cursor (doto (.find collection (to-db-object query) (as-field-selector fields)) - (.limit limit) - (.skip skip) - (.sort (to-db-object sort)) - (.batchSize batch-size) - (.hint (to-db-object hint)))] + (with-open [cursor (doto (.find collection (to-db-object query) (as-field-selector fields)) + (.limit limit) + (.skip skip) + (.sort (to-db-object sort)) + (.batchSize batch-size) + (.hint (to-db-object hint)))] (when snapshot (.snapshot cursor)) (when read-preference