From a121598651324d1ae1a68e653f28b0c56eae3a23 Mon Sep 17 00:00:00 2001 From: Tom McNulty Date: Thu, 10 Jan 2013 20:32:48 -0700 Subject: [PATCH] Close DBCursors in find-maps/find-seq --- src/clojure/monger/collection.clj | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) 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