Merge pull request #183 from jiacai2050/master

support set max-time on cursor
This commit is contained in:
Michael Klishin 2019-02-28 17:44:33 +03:00 committed by GitHub
commit 37816b77a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -43,6 +43,7 @@
[monger.conversion :refer :all] [monger.conversion :refer :all]
[monger.operators :refer :all]) [monger.operators :refer :all])
(:import [com.mongodb DB DBCollection DBObject DBCursor ReadPreference] (:import [com.mongodb DB DBCollection DBObject DBCursor ReadPreference]
[java.util.concurrent TimeUnit]
java.util.List)) java.util.List))
@ -96,6 +97,7 @@
snapshot snapshot
read-preference read-preference
keywordize-fields keywordize-fields
max-time
options] options]
:or { limit 0 batch-size 256 skip 0 } }] :or { limit 0 batch-size 256 skip 0 } }]
(with-open [cursor (doto (.find collection (to-db-object query) (as-field-selector fields)) (with-open [cursor (doto (.find collection (to-db-object query) (as-field-selector fields))
@ -109,6 +111,8 @@
(.hint cursor (to-db-object hint))) (.hint cursor (to-db-object hint)))
(when read-preference (when read-preference
(.setReadPreference cursor read-preference)) (.setReadPreference cursor read-preference))
(when max-time
(.maxTime cursor max-time TimeUnit/MILLISECONDS))
(when options (when options
(add-options cursor options)) (add-options cursor options))
(map (fn [x] (from-db-object x keywordize-fields)) (map (fn [x] (from-db-object x keywordize-fields))
@ -154,6 +158,10 @@
[m ^ReadPreference rp] [m ^ReadPreference rp]
(merge m { :read-preference rp })) (merge m { :read-preference rp }))
(defn max-time
[m ^long max-time]
(merge m { :max-time max-time }))
(defn options (defn options
[m opts] [m opts]
(merge m { :options opts })) (merge m { :options opts }))